我正在尝试使用jQuery的add
函数......但是当合并3000多个dom元素的对象时,它会冻结。有没有更快的方法可以实现这个目标?
var a = [];
a[0] = $('small');
a[1] = $('.no');
a[2] = $('.yes');
//a is array of jQuery objects
//make b an empty jQuery object. loop through a, adding each to b
var b = $();
for(var i in a) {
b = b.add(a[i]);
}
//browser freezes for a bit
console.log(b);
编辑:不要质疑为什么我有这么多DOM元素,我正在压力测试我正在编写的jQuery插件:D
答案 0 :(得分:5)
尽管我的评论,你可以做到
$('small, .no, .yes')
答案 1 :(得分:1)
这可能会有所帮助:API:http://api.jquery.com/jQuery.merge/
$.merge( [0,1,2], [2,3,4] )
请知道我是否遗漏任何东西,休息此api应该可以帮助你合并。 :)
$.merge()
操作形成一个数组,其中包含两个数组中的所有元素。将保留数组中项目的顺序,并附加第二个数组中的项目。 $ .merge()函数具有破坏性。它改变了第一个参数来添加第二个参数。
var a = [];
a[0] = $('small');
a[1] = $('.no');
a[2] = $('.yes');
// now to merge 2 arrays
$.merge( a, b) // a & b are arrays.