我必须在一次点击中创建七个div元素 - 容器A包含A1,A2,A3和amp; A4,然后A2a& A2b内的A2b。我正在使用多个调用这个小函数:
function u1(t,i,c,p){ // type,id,class_name,parent_id
var tag=document.createElement(t); // Create node to be appended
tag.id=i;
tag.className=c;
document.getElementById(p).appendChild(tag);
}
我的问题:是否有一种更具时间效率的方法将七个捆绑在一起,然后只添加一个DOM?或者innerHTML是一个不错的选择吗?
谢谢:)
答案 0 :(得分:10)
您可以使用.innerHTML
。另一种方法是使用文档片段:
var fragment = document.createDocumentFragment();
function u1(t, i, c){ // type,id,class_name
var tag = document.createElement(t); // Create node to be appended
tag.id = i;
tag.className = c;
fragment.appendChild(tag); // will use `fragment` from the outer scope
}
// call u1() seven times
// then insert all the elements into the DOM all at once
document.getElementById('foo').appendChild(fragment);
文档片段创建起来有点慢,但从长远来看可以节省性能。例如,在这种情况下,您将从7个DOM插入到一个DOM插入。 (涉及DOM的任何内容都是JavaScript中的慢。)
如果您想使用这两种方法({3}}。
对您的特定用例进行基准测试