Pre*_*mbo 4 xhtml jquery jquery-selectors
我想知道这是否是最优雅和最有效的方式吗?
我有多个'标签'列表,并且通过CSS,我希望标签显示为内联(显示:内联)并以逗号分隔.我遇到的挑战是将逗号添加到每个ul.tagList中除最后一个列表项之外的所有列表:
<ul class="outerList">
<li>
<div class="innerContainer">
<ul class="tagList">
<li>Tag A</li>
<li>Tag B</li>
<li>Tag C</li>
</ul>
</div>
</li>
<li>
<div class="innerContainer">
<ul class="tagList">
<li>Tag D</li>
<li>Tag E</li>
<li>Tag F</li>
</ul>
</div>
</li>
</ul>
Run Code Online (Sandbox Code Playgroud)
要在所有ul.tagList列表项上添加逗号,但是最后一个,我使用:
$('ul.tagList').children(':not(:last-child)').append(',');
Run Code Online (Sandbox Code Playgroud)
这会产生:
标签A,标签B,标签C.
标签D,标签E,标签F.
这是最好的方法吗?
另外,为什么:不是(:last-child)工作但不是:不是(:last)在这种情况下?
非常感谢您的帮助+解释.
Prembo.
:last在这种情况下不起作用,因为它只匹配一个元素,即最后一个元素.
last-child 可以匹配更多元素,每个父元素一个元素.
你的代码看起来很好,使用.not()而不是用sizzle查询可能会略微提高性能.
$('ul.tagList').children().not(':last-child').append(',');
Run Code Online (Sandbox Code Playgroud)