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

1 回答 1

2

您应该使用稍作修改的选择器

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

这直接针对spana 内的所有元素,li除了li每个列表的最后一个。

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

于 2011-05-09T07:57:52.783 回答