jQuery append()不添加< / ul>< ul> [英] jQuery append() not adding </ul><ul>

查看:179
本文介绍了jQuery append()不添加< / ul>< ul>的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述


可能重复:

使用.after()添加html关闭和打开标签

我想显示3个具有几乎相同高度的列列表(< ul> ),所以我在计算< li> 标记,并使用append动态生成列表。但是当我执行 $ el.append($(< / ul>< ul class ='new'>))关闭当前列表并追加一个新的附加内容,例如< ul class ='new'>< / ul>

I want to show 3 columns lists (<ul>) with almost the same height, so I'm counting the <li> tags and use append to generate the list dynamically. But when I do $el.append($("</ul><ul class='new'>")) to close the current list and append a new one it appends like <ul class='new'></ul>.

我只想关闭< ul> 标记并再次打开它。 jQuery append()函数是否以某种方式验证了DOM结构?如何获得指定的结果?

I just want to close the <ul> tag and open it again. Is jQuery append() function validating somehow the DOM structure? How can I get the spected result? Any better way to achieve this?

<div id="mylist">
   here the list will show
</div>



jQuery:



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));
  }});



预期结果:



Expected result:

<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>



我得到了什么:



What I got:

<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>


推荐答案

简单:

实时演示

strings 代替来设置< / ul> ;

Instead of objects, play with "strings" to set </ul><ul> where needed.

var arr = ['1','2','3','4','5','6','7','8','9','10','11','12','13','14'];

var str = "<ul class='new'>";
for(var i=0; i<arr.length;) { 
              str += "<li>"+ arr[i++] +"</li>" ;  
  if(i%3===0) str += "</ul><ul class='new'>"   ;
}
str += "</ul>" ;

$("#mylist").html( str );

这篇关于jQuery append()不添加&lt; / ul&gt;&lt; ul&gt;的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆