jquery each方法(jquery prop)
大家好,感谢邀请,今天来为大家分享一下jquery each方法的问题,以及和jquery prop的一些困惑,大家要是还不太明白的话,也没有关系,因为接下来将为大家分享,希望可以帮助到大家,解决大家的问题,下面就开始吧!
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 和$each的区别详解
$().each,对于这个方法,在dom处理上面用的较多。如果页面有多个input标签类型为checkbox,对于这时用$().each来处理多个checkbook。
$.each()函数不同于JQuery对象的each()方法,它是一个全局函数,不操作JQuery对象,而是以一个数组或者对象作为第1个参数,以一个回调函数作为第2个参数。回调函数拥有两个参数:第1个为对象的成员或数组的索引,第2个为对应变量或内容
jQuery each 中使用 sleep 延迟
在JavaScript世界中,实现延时通常采用setTimeout函数,没有直接的sleep函数,需自行实现,一种推荐方法是利用Promise。
理解上述代码,sleep()函数基于Promise实现,且仅在异步函数中调用。
看一个实际案例:
目标是依次给所有获取的$('.btn-greet')元素设置背景色为绿色,且每3秒延迟一次。
然而,这段代码不可行。jQuery的each方法只检查返回值是否为false(若真则中断循环),不检查是否为Promise。利用for循环替代jQuery的each,可在循环中实现延迟执行。
修改后的代码如下:
经过测试,该代码满足需求。
关于jquery each方法,jquery prop的介绍到此结束,希望对大家有所帮助。