删除每个列表中的最后一个逗号分隔符

时间:2011-05-09 07:52:45

标签: javascript jquery separator

我有一系列无序列表包含在另一个无序列表中。任务是用逗号分隔各个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 个答案:

答案 0 :(得分:2)

您应该使用略微修改的选择器

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

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

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