jQuery:如何检查元素是否是最后一个同级元素?

jQuery:如何检查元素是否是最后一个同级元素?,jquery,Jquery,如何检查元素是否是最后一个同级元素 对于行中的最后一个单元格,我希望执行不同的操作 这不起作用: $('td').each(function(){ var $this = $(this); if ( $this === $this.parent().last('td') ) { alert('123'); } }) 如果我删除.parent()尝试,它也不会发生 $('tr td:last-child').each(fun

如何检查元素是否是最后一个同级元素

对于行中的最后一个单元格,我希望执行不同的操作

这不起作用:

$('td').each(function(){
    var $this = $(this);
    if ( $this === $this.parent().last('td') )
        {
            alert('123');
        }
})
如果我删除
.parent()

尝试,它也不会发生

$('tr td:last-child').each(function(){
    var $this = $(this);
    alert('123');
});

给你,但这只有在你想对其他tds做点什么的情况下才有意义。其他明智的做法是使用其他答案中描述的最后一个孩子方法

$('td').each(function(){
    var $this = $(this);
    if ($this.index() == $this.siblings().length-1)
        {
            alert('123');
        }
})

这对我来说更优雅、更有效:

if($(this).is(':last-child'))
{
    alert('123');
}
你可以这样编码

var $this = $(this);
if($this.index()==$this.siblings().size()-1)
{
   alert("It's the last.");
}

如果要选择多个元素,这些元素是具有公共点的不同标记(例如:所有数据foo属性定义的标记,如div、inputs、text area等),可以遵循以下代码:

var elements = $("*[data-foo]");

elements.each(function (){
    ..
    ..your code
    ..

    if (elements.index(this) == elements.length - 1) {
            ..you are at the end, do something else
    }
})

这不起作用的原因是您正在比较两个jQuery对象。只有当对象是完全相同的对象时,它们才永远相等<代码>$(此)=$(此)为假。。疯狂的东西。如果您执行了
if($this.get(0)==$this.parent().last('td').get(0))
,则该示例将起作用,因为它比较了实际的DOM元素。()这比直接通过css选择对象要好得多。您也可以在变量上使用它。我想知道为什么不
$(this).is(':last')
像上面一样工作。@SkuraZZ选择器之间有细微的差别;:最后一个子元素选择父元素的最后一个子元素:最后一个子元素选择最后一个匹配的元素(请参见)