哪位大神教一下,如果我想创建N多个li标签,改怎么办
你现在这样一个个创建li 再一个个append,应该是可以实现需求的(虽然我不知道你到底想干嘛= =)
不过这样过多操作DOM,会引起过多的重绘和重排,影响性能。
如果要创建的li标签数量很多,可以先拼字符串,然后用 elem.insertAdjacentHTML(position, htmlStr)
这样一次性加上去,
这个api的第一个参数有四个,具体怎样用你查下文档吧,我懒得打字了 = =
或者用文档碎片document.createDocumentFragment()
这个api的用法如下:
//这是一个文档碎片
var fragElem = document.createDocumentFragment();
var targetElem = document.getElementById(''); //你想加的那个元素
for(var i = 0; i < 10000; i++) {
var liElem = document.createElement("li");
liElem.innerHTML = '测试数字 ' + i;
//先加在文档碎片中
fragElem.appendChild(liElem);
}
//最后一次性添加
targetElem.appendChild(fragElem);
//添加一万个元素只引起一次重绘重排
更多具体的可以自己去查下文档
谢邀
success: function(data){
var lis = [];
for(var i=0,len=data.length; i<len; i++){
lis.push('<li id='+data[i].value+' class="mui-table-view-cell"><a class="mui-navigate-right"></a>'+data[i].lab+'</li>');
}
list.innerHTML = lis.join('');
}
document.createDocumentFragment()用这个就不用每次都要去append了;
后者直接字符串拼接;
我之前也是这样做的,不过既然用了ajax+字符串拼接的方式,推荐使用handlebar..
10 回答11.2k 阅读
6 回答3k 阅读
5 回答4.8k 阅读✓ 已解决
4 回答3.1k 阅读✓ 已解决
2 回答2.7k 阅读✓ 已解决
3 回答2.3k 阅读✓ 已解决
3 回答2.1k 阅读✓ 已解决
我想你是想要根据
data
里面的数据长度来创建标签吧?或者
或者