1

例如,我们有

<ul><li></li><li></li>....</ul>

我们不知道这些代码中有多少个 li 标记,现在我引用了这些 li 元素之一。有没有一种简单的方法可以知道这个引用是否是最后一项?

4

4 回答 4

3

您可以使用:last-child选择器,并检查元素是否匹配它:

if( $('li').is(':last-child') ) {
    // ...
}

您应该将'li'上面的选择器替换为对元素的引用。

请注意,替换它是必要的,因为如果匹配集中的任何.is()元素与新选择器匹配,将返回 true ,因此您真的只想在特定的列表项上调用它。

于 2012-07-27T07:56:32.167 回答
1
$('ul li').each(function() {
   if($(this).is(':last-child')) { 
      // I am the youngest!
   }
});
于 2012-07-27T07:57:48.690 回答
1

最有效的方法是last在服务器上渲染时为其分配一个类。

这样,一个简单、便宜、高效$( this ).hasClass( 'last' )的就足够了。

例子:

<ul>
    <li></li>
    <li></li>
    <li></li>
    <li class="last"></li>
</ul>

jQuery:

if ( $( this ).hasClass( 'last' ) ) { // cheap
}

请记住:渲染页面的大部分时间都花在客户端上,效率越高越好。

于 2012-07-27T07:59:29.360 回答
0
$('ul li').on('click', function() {
    console.log($(this).is(':last-child'));
});
于 2012-07-27T07:59:47.893 回答