3

我知道我可以使用 jQuery.each()函数(而且效果很好),但是性能太慢了。所以我想使用一个 for 循环并在其中提供 jQuery 方法。例如:

var anArray = $('#somediv').children(); // it has a lot of children
for(i=0;i<anArray.length;i++) { // or for(i=anArray.length;i--;)
  anArray[i].addClass('sample_class'); // and a bunch of other stuff
};

现在浏览器抛出这个错误:

Uncaught TypeError: Object #<HTMLDivElement> has no method 'addClass'

认为它与 jQuery 包装器有关,$() 我知道我不久前在某处阅读了该解决方案,但我无法追溯它。

4

2 回答 2

3

确切地说,包装它,因为它们是 DOM 元素,实际上没有addClass方法:

$(anArray[i]).addClass('sample_class');

参考:http ://api.jquery.com/children/

于 2013-08-14T22:14:51.513 回答
2

您也可以使用addClassJavascript的等价物

anArray[i].className = "sample_class";
于 2013-08-14T22:16:40.333 回答