我知道如何使用 add()将两个 jQueries 添加在一起
但是,对于我正在从事的项目,它已成为性能瓶颈。我摆弄了一下,想出了一个替代方案,这给了我相同的结果,但性能得到了很大的提升(~60ms,而这个小提琴中的 1000ms):
http://jsfiddle.net/jedierikb/rkAP4/1/
var t = $("#test");
var tKids = t.children( );
var j = $("#jest");
var jKids = j.children( );
var z,
zMax = 30000;
var time1 = new Date();
for (z=0; z<zMax; z++)
{
var opt1 = tKids.add( jKids );
}
var time2 = new Date();
for (z=0; z<zMax; z++)
{
var i,
iMax,
allKids = [];
for(i = 0, iMax = tKids.length; i < iMax; i++)
{
allKids.push( tKids[i] );
}
for(i = 0, iMax = jKids.length; i < iMax; i++)
{
allKids.push( jKids[i] );
}
var opt2 = $( allKids );
}
var time3 = new Date();
console.log( (time2-time1) + " v " + (time3-time2) );
注意:我不需要 add 的好处,例如保证 dom 元素排序和删除重复项。
我想知道是否有一种方法可以使这种方法比我正在做的所有迭代更干净或更紧凑。或者也许有更好的方法。