我正在使用jQuery,并有一个包含几百行的表元素.我想删除所有行,然后添加一组新行.我这样做是通过调用remove然后追加父元素.
我的追加逻辑相当快,并遵循这里给出的建议:http://www.learningjquery.com/2009/03/43439-reasons-to-use-append-correctly
但是,删除单次调用所需的时间是追加的5倍.清除dom元素子元素的最快方法是什么?
编辑:这是我使用的代码的精简版本:
var table = $('#mytable');
$('tbody', table).remove();
table.append(tBodyContents.join(''));
Run Code Online (Sandbox Code Playgroud)
tBodyContents是一个字符串数组,组合后将形成tbody中行的html.
我经常这样做
$('#myTableToEmpty').html('');
Run Code Online (Sandbox Code Playgroud)
然后在需要的地方重新添加行.
function emptyElement(element){
var i = element.childNodes.length;
while(i--){
element.removeChild(element.lastChild);
}
}
Run Code Online (Sandbox Code Playgroud)
这个实际上比innerHTML技巧更快,可以更快,取决于您的浏览器.使用类似的函数对jsperf进行了一些测试,可以为你提供一些基准测试......