得到了一些代码在这里不工作:

$("#sidebar ul li:last").each(function(){
      $(this).addClass("last");
});

基本上我有3所列出,并希望对类(最后一个)添加到最后出现在每个无序列表的每个项。

<ul>
      <li>Item 1</li>
      <li>Item 2</li>
      <li class="last">Item 3</li>
</ul>

希望是有道理的, 干杯!

有帮助吗?

解决方案

容易犯的错误。尝试这样:

$("#sidebar ul li:last-child").addClass("last");

基本上:最后并没有完全做你认为它。它只匹配的最后文件,而不是上次在每个列表英寸这就是:最后一个孩子是

其他提示

与jquery添加此

$("ul li").last().addClass('last');

这将无法正常工作的原因是由于:last只匹配一个元件这一事实。从jQuery文档:

  

匹配最后选择的元素

那么,什么你的代码做的是得到一套在<li>所有<ul>元素,然后从该组采取的最后一个值。例如:

 <ul>
   <li>1</li>
   <li>2</li>
 </ul>
 <ul>
   <li>3</li>
   <li>4</li>
 </ul>
 <ul>
   <li>5</li>
   <li>6</li>
 </ul>

您的代码将返回元件<li>6</li>。 (在内部,它会收集到<li>1</li> <li>6</li>然后砍掉最后一个,并返回它)。

什么你要找的是什么其他的答案在这里说::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>

然后你可以这样做:

jQuery("li:last", "ul#myList").addClass("lastItem");

现在,在第一个列表的最后李将有一流“lastItem”。

编辑:对不起,误解的问题。忽略此请。

如果您需要添加类至3个单独的列表可以分配一个类它们,并使用“每个”:

$('#sidebar ul.class li:last-child').each(function(e){
    $(this).addClass("last");
});

这应该工作完全按照您的预期。

您可以尝试

$('#sidebar ul li:last').addClass('last');
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top