发新贴  快速回复

$().each 与直接用$()获取class的区别

sxwxxi123
2017-11-06 17:09

$().each是一种遍历循环操作dom 

$()获取多个class 也是可全部操作

二者有啥区别  用法有哪些不同

还有一个$.each()...  

有点混淆了

 

2017年2月8日
例如获取页面一些div可以这样写$('div'),这个只是获取所有div,如果要给这个div加一些相同的东西,当然用不到循环了,例如$('div').css('color','red');所有div字变红,是相同的,都变红,但是如果要不同,第一个要红,第二个要绿呢?你用$('div').css('color','red')这种就做不到了。所以就需要循环,你可以用原生的for循环,用jq的each循环也行,我平时都用原生的for循环,不为别的,就性能高。jq里面的each也是调用原生的for循环和for in循环,所以,直接用原生的性能肯定高。但是jq的each也有好处,就是方便,它是这样方便的$('div').each(function(i,elem){});其中i是下标0,1,2..这些,elem是原生的div节点,函数里面的this也是原生的div节点,都表示单个,不是一群div。这样来就可以单个操作div。然后,$.each()和$('div').each()的区别是后者在内部是调用前者的,也就是最终调用$.each()。我们在外面也可以用,但是这个$.each()需要两个参,一个惨是数组或类数组或json,第二个参数是回调函数$.each([1,2,4],function(){});
2017-11-07 00:30  回复本帖
 
童童
同学你好,
简要地说
$().each是提供的遍历元素的方式,
$()是直接操作所有获取到的元素集合.
就像是电饭煲,你用个温度比较高,持续加热的铁块也能达到把水加热的目的,
但是电饭煲其实就是在内部调用了这个铁块,

jq提供了很多类似的东西,使用上的差异不大,但是还是有一些细微区别,
有的情况下,会出现有某个方法调用自己的另一个方法.

最好的方式是去看jq的源码或者文档,可以深刻了解更多的区别
2017-11-10 19:00  回复本帖
登录 后才可以发表回复