5

如果我想使用 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。

谢谢你的帮助!

4

3 回答 3

3

所以你想用“theclass”类来设计你所有的元素?

如果是这样, .each() 的 jQuery 文档说:

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

正如 Sirko 建议的那样,您可以进行性能测试 :) 我更喜欢您的首选

于 2013-04-12T10:18:41.217 回答
2

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

于 2013-04-12T10:17:55.620 回答
2

性能方面,第一个片段稍微快一点

在此处输入图像描述

在内部,它做了几乎相同的事情,但是在 jQuery 中迭代一组元素的代码可能比你可以手动实现的优化得多.each

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

于 2013-04-12T10:19:02.843 回答