0

我正在尝试对我的代码进行一些速度改进,我想知道哪种方式是访问 DOM 的更好/更快的方式。

我有一个对应于 <li> 的 id 数组,我想遍历它们并添加一个类。

我有两种方法:1)循环遍历 ids 数组,通过 id 获取元素并应用类

    for(var i=0; i<idArray.length i++){
       $('#'+idArray[i]).addClass('someclass')
     }

2)提取DOM节点,缓存它,然后循环遍历它,所以我只迭代DOM的一部分

    var column=$('#my_ul');

    for(var i=0; i<idArray.length i++){
       column.find('#'+idArray[i]).addClass('someclass')
     }

预先感谢您的帮助

4

2 回答 2

1

您可以使用以下方法避免循环:

 $( "#" +idArray.join( ",#") ).addClass("someclass");

选择器将解析为:

"#" +["asd","dasd","daa"].join( ",#") 
//"#asd,#dasd,#daa"
于 2012-07-13T10:51:15.023 回答
0

选项 1 应该更快。但是,如果这些都是一个父级的所有子级,则将类添加到父级可能是个好主意。

于 2012-07-13T10:51:11.950 回答