如果我想使用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。
感谢您的帮助!
答案 0 :(得分:3)
所以你想用“theclass”类来设置所有元素的样式吗?
如果是,jQuery Documentation for .each()说:
注意:大多数返回jQuery对象的jQuery方法也循环遍历jQuery集合中的元素集 - 一个称为隐式迭代的过程。 发生这种情况时,通常不必使用.each()方法显式迭代
正如Sirko建议你可以进行性能测试:)我更喜欢你的第一选择
答案 1 :(得分:2)
第一选择更好 - 代码更少,不需要创建不必要的匿名函数,也不调用此函数。两者都是浏览器。 jQuery:少写,做更多。
答案 2 :(得分:2)
在性能方面,第一个代码段为slighty faster:
在内部,它几乎完全相同,但是迭代jQuery中的一组元素的代码可能比使用.each
手动实现的代码更加优化。
正如其他人已经说过的那样,浏览器的兼容性应该是相同的。