jquery通过id或缓存的dom节点获取并查找(id)

时间:2012-07-13 10:47:05

标签: jquery performance dom iteration

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

我有一系列ID对应于< li>我想循环遍历它们并添加一个类。

我有两种方法: 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')
     }

提前感谢您的帮助

2 个答案:

答案 0 :(得分:1)

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

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

选择器将解析为:

"#" +["asd","dasd","daa"].join( ",#") 
//"#asd,#dasd,#daa"

答案 1 :(得分:0)

选项1应该更快。但是,如果这些都是父母一方的孩子,那么将课程添加到父母可能是个好主意。