我想展示三列列表(<ul>
),并且它们的高度几乎相同,因此我正在计算 <li>
标记并使用 append 生成动态列表。但是当我执行 $el.append($("</ul><ul class='new'>"))
来关闭当前列表并附加新列表时,它会像这样附加 <ul class='new'></ul>
。
我只想关闭 <ul>
标记并重新打开它。jQuery 的 append()
函数是否在某种程度上验证 DOM 结构?如何获得预期的结果?有更好的方法来实现这个吗?
HTML:
<div id="mylist">
here the list will show
</div>
Jquery:
var $el = $("#mylist");
$el.empty(); // remove old options
$el.append($("<ul class='new'>"));
var j = parseInt(response.length/3);
var i = 0;
$.each(response, function(key, value) {
i++;
if(i%j==0){
$el.append($("</ul><ul class='new'>")).append($("<li></li>").text(value.nombre));
}
else{
$el.append($("<li></li>").text(value.name));
}});
预期结果:
<div >
<ul class="new">
<li>Lorem Ipsum</li>
<li>Lorem Ipsum</li>
<li>Lorem Ipsum</li>
</ul><ul class="new"> //This is what I want to append
<li>Lorem Ipsum</li>
<li>Lorem Ipsum</li>
<li>Lorem Ipsum</li>
</ul><ul class="new">
<li>Lorem Ipsum</li>
<li>Lorem Ipsum</li>
</ul>
</div>
我得到了什么:
<div id="mylist">
<ul class="new"></ul>
<li>Lorem Ipsum</li>
<li>Lorem Ipsum</li>
<li>Lorem Ipsum</li>
<ul class="new"></ul>
<li>Lorem Ipsum</li>
<li>Lorem Ipsum</li>
<li>Lorem Ipsum</li>
<ul class="new"></ul>
<li>Lorem Ipsum</li>
<li>Lorem Ipsum</li>
</div>
.append
用于将节点附加到 DOM 中,而不是任意的 HTML 字符串。 - gen_Eric$("</ul><ul class='new'>")
这句代码并不会产生你认为的效果。 - gen_Eric