2011-05-09 50 views
1

我有一系列无序列表包裹在另一个无序列表中。任务是用逗号分隔各个li标签并省略每个列表的最后一个li标签。删除每个列表中的最后一个逗号分隔符

我可以在单个列表级别上完成它,即当只使用一个列表进行测试时,我可以从最后一个元素中删除最后一个逗号。但是,当我试图应用的JavaScript在影响着包装UL的最后一个li元素...

这里是我的代码:

<script type="text/javascript"> 
      $(document).ready(function() { 

       $('.tagsList li span').each(function() { 
        $(this).append(','); 
       }); 
       var lTag = $('.tagsList li:last span').text().replace(',',''); 
       $('.tagsList li:last span').text(lTag); 
      }); 

</script> 
<ul class="postsList"> 
    <li> 
     <ul class="tagsList"> 
      <li><span>tag1</span></li> 
      <li><span>tag2</span></li> 
     </ul> 
     </li> 
<li> 
    <ul class="tagsList"> 
     <li><span>tag1</span></li> 
     <li><span>tag2</span></li> 
    </ul> 
</li> 
</ul> 
+1

甚至CSS就足够了:'.tagsList>李+ LI:前{内容: “”}' – Gumbo 2011-05-09 08:06:33

回答

2

你应该使用一个稍微修改选择

$('.tagsList li:not(:last-child) span').each(function() { 
    $(this).append(','); 
}); 

这直接指向li内的所有span元素,但每个列表的最后一个li除外。

演示http://jsfiddle.net/gaby/wwTjH/2/

+0

谢谢SOOOO多的及时答复!你救了我的一天!:) – Vikita 2011-05-09 08:16:14

+0

关于如何将评论添加到除最后一个孩子以外的任何想法? – 2011-10-21 04:26:36

+0

@chris,除了最后一个孩子以外,它都会添加到所有“li”的最后一个“li”中,然后将':last-child'改为':last ' – 2011-10-21 08:55:29

相关问题