JQuery-如何将类添加到每个最后的列表项?
这里有一些不起作用的代码:JQuery-如何将类添加到每个最后的列表项?,jquery,css,class,each,Jquery,Css,Class,Each,这里有一些不起作用的代码: $("#sidebar ul li:last").each(function(){ $(this).addClass("last"); }); 基本上,我有3个列表,并希望为每个无序列表中最后出现的项目添加一个类(last) <ul> <li>Item 1</li> <li>Item 2</li> <li class="last">Item 3&l
$("#sidebar ul li:last").each(function(){
$(this).addClass("last");
});
基本上,我有3个列表,并希望为每个无序列表中最后出现的项目添加一个类(last)
<ul>
<li>Item 1</li>
<li>Item 2</li>
<li class="last">Item 3</li>
</ul>
- 项目1
- 项目2
第3项
希望这是有道理的,
干杯 你可以试试
$('#sidebar ul li:last').addClass('last');
容易犯错误。试试这个:
$("#sidebar ul li:last-child").addClass("last");
基本上:last并不像你想象的那样。它只匹配文档中的最后一个,而不是每个列表中的最后一个。这就是:last child的作用。不起作用的原因是因为
:last
只匹配一个元素。从jQuery文档中:
匹配最后选定的元素
因此,您的代码所做的是获取中所有元素的集合,然后从该集合中获取最后一个值。例如:
<ul>
<li>1</li>
<li>2</li>
</ul>
<ul>
<li>3</li>
<li>4</li>
</ul>
<ul>
<li>5</li>
<li>6</li>
</ul>
- 一,
- 二,
- 三,
- 四,
- 五,
- 六,
您的代码将返回元素6
。(在内部,它会将1 收集到6 ,然后剪掉最后一个并返回)
您要查找的是这里的其他答案所说的::last child
,或者您可以为列表提供一个id,并将其用作jquery调用的上下文
<ul id="myList">
<li>Item</li>
<li>Item</li>
<li>Item</li>
<li>Item</li>
</ul>
<ul id="anotherList">
<li>Item</li>
<li>Item</li>
<li>Item</li>
<li>Item</li>
</ul>
现在,第一个列表中的最后一个li将具有类“lastItem”
编辑:对不起,误读了问题。请忽略此项。使用jquery添加此项
$("ul li").last().addClass('last');
如果您需要将类添加到3个单独的列表中,您可以为它们分配一个类并使用“每个”:
$('#sidebar ul.class li:last-child').each(function(e){
$(this).addClass("last");
});
这应该和您期望的完全一样。这个添加的类是否用于在列表底部添加边距?如果是这样,您可以使用ul的保证金底部属性。如果没有,请继续=帕索,你不需要做。在这种情况下,你可以直接做。addClass
。jQuery将把所有命令应用于整个匹配元素集。另外,这里有一个测试不同选择器并查看它们如何工作的好网站:完美谢谢你花时间帮我,伙计,谢谢
$('#sidebar ul.class li:last-child').each(function(e){
$(this).addClass("last");
});