比如在一个div里面添加元素, 不用jquery的话,为了提高效率,肯定是先要创建文档碎片 然后让div再appendChild,现在用了jquery该怎么办啊.
我用这个 var $frag = $(document.createDocumentFragment());
这个不管用啊...
我用这个 var $frag = $(document.createDocumentFragment());
这个不管用啊...
2、如果需要给DOM中添加新的元素,避免创建一个元素添加一次。应尽量只添加一次 // bad code
$.each(aArray, function(i, item) {
var newListItem = '<li>' + item + '</li>';
$('ul').append(newListItem); // 这里每append一次都将会重载DOM
});
// better code
var frag = document.createDocumentFragment(); // 创建文档碎片
$.each(aArray, function(i, item) {
var newListItem = '<li>' + item + '</li>';
frag.appendChild(newListItem); // 这里不会刷新DOM
});
$('ul').appendChild(frag); // 添加新元素,此时重载DOM一次
// or do this
var sHtml = '';
$.each(aArray, function(i, item) {
html += '<li>' + item + '</li>'; // 构造需要添加元素的字符串
});
$('ul').html(sHtml); // 使用jQuery的$.fn.html()方法添加改字符串
http://blog.csdn.net/oxcow/archive/2011/04/09/6311550.aspx
另外,使用拼接字符串的方法把dom节点拼成一个字符串使用$.html()方法也是可以的