jquery的each,jquery的each循环continue

jquery each()源代码

复制代码

创新互联是专业的眉县网站建设公司,眉县接单;提供网站设计制作、成都做网站,网页设计,网站设计,建网站,PHP网站建设等专业做网站服务;采用PHP框架,可快速的进行眉县网站开发网页制作和功能扩展;专业做搜索引擎喜爱的网站,专业的做网站团队,希望更多企业前来合作!

代码如下:

//

args

is

for

internal

usage

only

each:

function(

object,

callback,

args

)

{

var

name,

i

=

0,

length

=

object.length,

isObj

=

length

===

undefined

||

jQuery.isFunction(object);

if

(

args

)

{

if

(

isObj

)

{

for

(

name

in

object

)

{

if

(

callback.apply(

object[

name

],

args

)

===

false

)

{

break;

}

}

}

else

{

for

(

;

i

length;

)

{

if

(

callback.apply(

object[

i++

],

args

)

===

false

)

{

break;

}

}

}

//

A

special,

fast,

case

for

the

most

common

use

of

each

}

else

{

if

(

isObj

)

{

for

(

name

in

object

)

{

if

(

callback.call(

object[

name

],

name,

object[

name

]

)

===

false

)

{

break;

}

}

}

else

{

for

(

var

value

=

object[0];

i

length

callback.call(

value,

i,

value

)

!==

false;

value

=

object[++i]

)

{}

}

}

return

object;

},

分析:jquery文档说

each(callback)作用是以每一个匹配的元素作为上下文来执行一个函数。就是用each来遍历数组,来执行同一个方法

这个方法的实现最关键的是:call与apply的用法:call(apply)就是将函数的对象的从初始的上下文改为thisObj指向的对象,

就是说用thisObj来代替原来的对象来执行方法:call与apply的第一个参数为this指向的对象,而后面的参数都下传给函数的,

call传给函数的参数用逗号分隔而apply则为一个数组。

//1.callback.apply(

object[

name

],

args

)

//2.callback.call(

object[

name

],

name,

object[

name

]

)

jquery的each是什么函数

遍历一个jQuery对象,为每个匹配元素执行一个函数。

ul    

lifoo/li    

libar/li

/ul

$( "li" ).each(function( index ) {  

console.log( index + ": "" + $(this).text() );

});

//或者一个数组,集合,map

$.each(集合,function(){

console.log( 集合.name+ ": "" +集合.age );

});

jquery里面的each()是什么意思

each()就是循环,给你例子吧,比如你的页面只有 3对p标签p1/pp2/pp3/p$("p").each(function(i){//这样写它就是循环三次,其中function中的i就是指索引alert(i);//弹出循环到当前p的索引,索引从0开始,你可以试试,执行程序看效果就是最好的理解alert($(this).text());//弹出循环到当前p的文本});

jQuery中$.each()函数的用法引申实例

语法:

$.each(

collection,

callback(indexInArray,

valueOfElement)

)

值得一提的是,forEach

可以很方便的遍历数组和

NodeList

,jQuery

中的

jQuery

对象本身已经部署了这类遍历方法,而在原生

JavaScript

中则可以使用

forEach

方法,但是

IE

并不支持,因此我们可以手动把

forEach

方法部署到数组和

NodeList

中:

if

(

!Array.prototype.forEach

){

Array.prototype.forEach

=

function(fn,

scope)

{

for(

var

i

=

0,

len

=

this.length;

i

len;

++i)

{

fn.call(scope,

this[i],

i,

this);

}

}

}

//

部署完毕后

IE

也可以使用

forEach

document.getElementsByTagName('p').forEach(function(e){

e.className

=

'inner';

});

而jQuery中的$.each()函数则更加强大。$.each()函数和$(selector).each()不一样。$.each()函数可以用来遍历任何一个集合,不管是一个JavaScript对象或者是一个数组,如果是一个数组的话,回调函数每次传递一个数组的下标和这个下标所对应的数组的值(这个值也可以在函数体中通过this关键字获取,但是JavaScript通常会把this这个值当作一个对象即使他只是一个简单的字符串或者是一个数字),这个函数返回所遍历的对象,也就是这个函数的第一个参数,注意这里还是原来的那个数组,这是和map的区别。

其中collection代表目标数组,callback代表回调函数(自己定义),回调函数的参数第一个是数组的下标,第二个是数组的元素。当然我们也可以给回调函数只设定一个参数,这个参数一定是下标,而没有参数也是可以的。

例1:传入数组

!DOCTYPE

html

html

head

script

src=””/script

/head

body

script

$.each([52,

97],

function(index,

value)

{

alert(index

+

‘:

+

value);

});

/script

/body

/html

输出:

0:

52

1:

97

例2:如果一个映射作为集合使用,回调函数每次传入一个键-值对

!DOCTYPE

html

html

head

script

src=””/script

/head

body

script

var

map

=

{

‘flammable':

‘inflammable',

‘duh':

‘no

duh'

};

$.each(map,

function(key,

value)

{

alert(key

+

‘:

+

value);

});

/script

/body

/html

输出:

flammable:

inflammable

duh:

no

duh

例3:回调函数中

return

false时可以退出$.each(),

如果返回一个非false

即会像在for循环中使用continue

一样,

会立即进入下一个遍历

!DOCTYPE

html

html

head

style

div

{

color:blue;

}

div#five

{

color:red;

}

/style

script

src=””/script

/head

body

div

id=”one”/div

div

id=”two”/div

div

id=”three”/div

div

id=”four”/div

div

id=”five”/div

script

var

arr

=

[

"one",

"two",

"three",

"four",

"five"

];//数组

var

obj

=

{

one:1,

two:2,

three:3,

four:4,

five:5

};

//

对象

jQuery.each(arr,

function()

{

//

this

指定值

$(“#”

+

this).text(“Mine

is

+

this

+

“.”);

//

this指向为数组的值,

如one,

two

return

(this

!=

“three”);

//

如果this

=

three

则退出遍历

});

jQuery.each(obj,

function(i,

val)

{

//

i

指向键,

val指定值

$(“#”

+

i).append(document.createTextNode(”

+

val));

});

/script

/body

/html

输出

Mine

is

one.

1

Mine

is

two.

2

Mine

is

three.

3

-

4

-

5


当前标题:jquery的each,jquery的each循环continue
网页路径:http://myzitong.com/article/dsijecc.html