$(element).find(“。class”)。css(...)和$(this).css是否存在$(元素).find(“。class”)。each()函数之间的区别?

时间:2013-04-12 10:11:40

标签: jquery backbone.js

如果我想使用jQuery find方法编辑具有特定类的DOM元素的CSS属性,如果我使用这个简短的方法,它是否会产生差异(在性能和浏览器兼容性方面):

$(domobject).find(".theclass").css("color","#FFF");

或每个函数都是这样的:

$(domobject).find(".theclass").each(function() {
    $(this).css("color","#FFF");
});

在我的例子中,dom-object是一个backbone.js view.el元素,但当然我的问题不仅适用于backbone.js。

感谢您的帮助!

3 个答案:

答案 0 :(得分:3)

所以你想用“theclass”类来设置所有元素的样式吗?

如果是,jQuery Documentation for .each()说:

  

注意:大多数返回jQuery对象的jQuery方法也循环遍历jQuery集合中的元素集 - 一个称为隐式迭代的过程。 发生这种情况时,通常不必使用.each()方法显式迭代

正如Sirko建议你可以进行性能测试:)我更喜欢你的第一选择

答案 1 :(得分:2)

第一选择更好 - 代码更少,不需要创建不必要的匿名函数,也不调用此函数。两者都是浏览器。 jQuery:少写,做更多。

答案 2 :(得分:2)

在性能方面,第一个代码段为slighty faster

enter image description here

在内部,它几乎完全相同,但是迭代jQuery中的一组元素的代码可能比使用.each手动实现的代码更加优化。

正如其他人已经说过的那样,浏览器的兼容性应该是相同的。