0

假设我们有以下列表:

<ul>
  <li><a href="#">Link 1</a></li>
  <li><a href="#">Link 2</a></li>
  <li><a href="#">Link 3</a></li>
  <li><a href="#">Link 4 (different action)</a></li>
</ul>

是否可以在不添加任何标记的情况下为此列表的最后一项分配不同的点击操作?我的意思是不必在最后一项或其他内容中添加例如 class="last"

4

4 回答 4

4

如果您的意思是仅在最后一项上的单击事件处理程序:

$("ul > li:last-child").click(function() {
  //
});

如果您希望点击处理程序对最后一个处理程序采取不同的行动:

$("li").click(function() {
  if ($(this).is(":last-child")) {
    // do something
  } else {
    // do something else
  }
});
于 2009-06-08T13:09:23.680 回答
2

试试这个:

$('ul li a').slice(-1).click(function () {
   // Your general click handler here (All elements except last)
});

$('ul li:last-child a').click(function () {
   // Your more specific click handler here
});
于 2009-06-08T13:12:28.120 回答
1

您可以使用 :last 选择器。

 $(".yourUL li:last a").click(...);

这样,您将单击事件处理程序添加到所选 UL 中的最后一个 li。

于 2009-06-08T13:10:09.667 回答
0

只需使用 :last-child 选择器。

$('ul li:last-child').click(myFunc);

于 2009-06-08T13:11:07.390 回答