如何将 LARGE jQuery 对象的数组合并为一个

How to merge array of LARGE jQuery objects into one?

本文关键字:一个 合并 数组 LARGE jQuery 对象      更新时间:2023-09-26

我正在尝试使用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

尽管我发表了评论,但你可以这样做

$('small, .no, .yes')

这可能会有所帮助: 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.