jquery each(jquery each()源代码)
本文目录
- jquery each()源代码
- jquery的each是什么函数
- jquery $.each(data, function (index, value) {
- jquery中.map与each的区别
- jquery each什么意思
- jQuery中each的疑问
- Jquery each方法跳出循环,并获取返回值实例讲解
- JQuery中$each 和$each的区别详解
- jquery each 里面可以在有each吗
- jquery里面的each()是什么意思
jquery each()源代码
复制代码
代码如下:
//
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;
i
《
length
&&
callback.call(
value,
i,
value
)
!==
false;
value
=
object
)
{}
}
}
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》
《li》foo《/li》
《li》bar《/li》
《/ul》
$( “li“ ).each(function( index ) {
console.log( index + “: ““ + $(this).text() );
});
//或者一个数组,集合,map
$.each(集合,function(){
console.log( 集合.name+ “: ““ +集合.age );
});
jquery $.each(data, function (index, value) {
在json中常常碰到这样的代码:
遍历处理data,可以是数组、DOM、json等,取决于直接给定或者ajax返回的类型
function (index, value)中index是当前元素的位置,value是值。
// each处理一维数组
// 处理json数据,例如ajax的返回值
也就是说:obj的是一个对象:function里的key Value都是obj里的值;大多数情况下:data是后台返回的值。
jquery中.map与each的区别
一、功能不同
1、map:用于使用指定函数处理数组中的每个元素(或对象的每个属性),并将处理结果封装为新的数组返回。
2、each:为每个匹配元素规定要运行的函数。
二、传递参数不同
1、map:会为函数传入两个参数:其一是当前迭代的元素或属性值,其二是当前迭代项的数组索引或对象属性名。
2、each: 会为函数传入两个参数:其一是选择器的 index 位置。其二是当前的元素。
三、返回值不同
1、map:返回值将作为结果数组中的一个元素,如果返回值为null或undefined,则不会被添加到结果数组中。
2、each:返回 false 可用于及早停止循环。
参考资料来源:百度百科-each
参考资料来源:百度百科-Map
jquery each什么意思
用例子说明:
《p》1《/p》
《p》2《/p》
《p》3《/p》
$(“p“).each(function(i){//这样写它就是循环三次,其中function中的i就是指索引
alert(i);//弹出循环到当前p的索引,索引从0开始,你可以试试,执行程序看效果就是最好的理解
alert($(this).text());//弹出循环到当前p的文本
});
jQuery中each的疑问
楼上的说法存在一点问题
each严格说来 不是循环,而是遍历 循环虽然和遍历都是可以找到每一个img元素 但 循环!=遍历
遍历的速度比循环要快得多,就像后台中的for和foreach一样
有人做过试验在同时处理30万条数据的时候 foreach比for要快0.00几秒,虽然这个数值很小,但在处理大数据的时候 还是比较可观的。
其实楼主写的两种方法都是一样的,只是对用each函数遍历的来说,比较直观性,而且可以对每选择器中每一个img进行单独操作。
方法一:
$(“img“).each(function(){
$(this).attr(“src“,“2.jpg“);
})
方法二:
$(“img“).attr(“src“,“2.jpg“);
方法三:
for(var i=0;i《$(“img“).length;i++)
{
$(“img“).eq(i).attr(“src“,“2.jpg“);
}
这三种方法很明显可以看出 方法一和方法二的处理速度是最快的,方法一的优势是可以对每一个img标签进行单独操作。而方法二,则是同时对所有img进行相同操作。
由于each有单独操作的优势,所以很多人习惯使用它,在楼主给的具体代码中,当然,当然方法二是比较好的,因为代码量少
还有 each(function(){})的function函数中可以带有一个参数
$(“img“).each(function(index){});这个index是告知函数当前已遍历到第几个函数了 index是从0开始的索引
Jquery each方法跳出循环,并获取返回值实例讲解
这篇文章主要是对Jquery
each方法跳出循环,并获取返回值进行了详细的介绍,需要的朋友可以过来参考下,希望对大家有所帮助
return
false:将停止循环
(就像在普通的循环中使用
’break’)。
return
true:跳至下一个循环(就像在普通的循环中使用’continue’)。
代码如下:
function
test(){
var
success
=
false;
$(..).each(function
()
{
if
(..)
{
success
=
true;
return
false;
}
});
return
success
;
}
jquery是对象链,所以$(..).each()返回的还是对象集合。each(function(){}):是回调函数,在回调函数里不能返回结果到回调函数each外面。
JQuery中$each 和$each的区别详解
在jquery中,遍历对象和数组,经常会用到$().each和$.each(),两个方法。两个方法是有区别的,从而这两个方法在针对不同的操作上,显示了各自的特点。
$().each,对于这个方法,在dom处理上面用的较多。如果页面有多个input标签类型为checkbox,对于这时用$().each来处理多个checkbook,例如:
$(“input”).each(function(i){
if($(this).attr(‘checked’)==true)
{
//一些操作代码
}
回调函数是可以传递参数,i就为遍历的索引。
对于遍历一个数组,用$.each()来处理,简直爽到了极点。例如:
$.each([{“name”:”limeng”,”email”:”xfjylimeng”},{“name”:”hehe”,”email”:”xfjylimeng”},function(i,n)
{
alert(“索引:”+i,”对应值为:”+n.name);
});
参数i为遍历索引值,n为当前的遍历对象.
var arr1 = ;
$.each(arr1, function(){
alert(this);
});
输出:one two three four five
var arr2 =
$.each(arr2, function(i, item){
alert(item);
});
输出:1 4 7
var obj = { one:1, two:2, three:3, four:4, five:5 };
$.each(obj, function(key, val) {
alert(obj);
});
输出:1 2 3 4 5
在jQuery里有一个each方法,用起来非常的爽,不用再像原来那样写for循环,jQuery源码里自己也有很多用到each方法。
其实jQuery里的each方法是通过js里的call方法来实现的。
下面简单介绍一下call方法。
call这个方法很奇妙,其实官方的说明是:“调用一个对象的一个方法,以另一个对象替换当前对象。”网上更多的解释是变换上下文环境,也有说是改变上下文this指针。
call()
参数
thisObj
可选项。将被用作当前对象的对象。
arg1, arg2, , argN
可选项。将被传递方法参数序列。
说明
call 方法可以用来代替另一个对象调用一个方法。call 方法可将一个函数的对象上下文从初始的上下文改变为由 thisObj 指定的新对象。
引用网上有一个很经典的例子
Js代码
function add(a,b)
{
alert(a+b);
}
function sub(a,b)
{
alert(a-b);
}
add.call(sub,3,1);
用 add 来替换 sub,add.call(sub,3,1) == add(3,1) ,所以运行结果为:alert(4);
注意:js 中的函数其实是对象,函数名是对 Function 对象的引用。
具体call更深入的就不在这里提了。
下面提一下jQuery的each方法的几种常用的用法
Js代码
var arr = ;
$.each(arr, function(){
alert(this);
});
//上面这个each输出的结果分别为:one,two,three,four
var arr1 =
$.each(arr1, function(i, item){
alert(item);
});
//其实arr1为一个二维数组,item相当于取每一个一维数组,
//item相对于取每一个一维数组里的第一个值
//所以上面这个each输出分别为:1 4 7
var obj = { one:1, two:2, three:3, four:4};
$.each(obj, function(key, val) {
alert(obj);
});
//这个each就有更厉害了,能循环每一个属性
//输出结果为:1 2 3 4
jquery each 里面可以在有each吗
在jquery中的each有两种用法,分别是$.each()和$(selector).each(); $.each()与$(selector).each()不同, 后者专用于jquery对象的遍历, 前者可用于遍历任何的集合(无论是数组或对象),如果是数组,回调函数每次传入数组的索引和对应的值
jquery里面的each()是什么意思
each()就是循环,给你例子吧,比如你的页面只有 3对p标签《p》1《/p》《p》2《/p》《p》3《/p》$(“p“).each(function(i){//这样写它就是循环三次,其中function中的i就是指索引alert(i);//弹出循环到当前p的索引,索引从0开始,你可以试试,执行程序看效果就是最好的理解alert($(this).text());//弹出循环到当前p的文本});
更多文章:
vs2015中文旗舰版下载(vs2015 安装的中文包为什么不显示)
2023年3月19日 13:40
三星w589是什么系统(三星手机sch-w589 是什么操作系统)
2024年6月21日 05:36
toolbox(solidwoeks2015如何配置Toolbox)
2023年8月18日 11:00
帝王和百姓都趋之若鹜各种修仙传说,昆仑山脉到底隐藏着什么秘密?2014最火的仙侠小说有哪些
2024年1月12日 11:20
机器人大战总共有几部(包括各个机种)?超级机器人大战MX的参战作品一览
2024年9月12日 09:00