Reputation: 37377
How do I check if an element is the last sibling?
For the last cell in a row I want to perform a different action.
This doesn't work:
$('td').each(function(){
var $this = $(this);
if ( $this === $this.parent().last('td') )
{
alert('123');
}
})
And neither does it if I remove .parent()
.
Upvotes: 61
Views: 75200
Reputation: 537
If you want to select multiple elements which are different tags with a common point, (for ex: all data-foo attribute defined tags like divs, inputs, text areas, etc.) you can follow this code:
var elements = $("*[data-foo]");
elements.each(function (){
..
..your code
..
if (elements.index(this) == elements.length - 1) {
..you are at the end, do something else
}
})
Upvotes: 0
Reputation: 436
you can code this way.
var $this = $(this);
if($this.index()==$this.siblings().size()-1)
{
alert("It's the last.");
}
Upvotes: 5
Reputation: 4477
This is more elegant and worked for me:
if($(this).is(':last-child'))
{
alert('123');
}
Upvotes: 325
Reputation: 10221
Here you go, but that only make sense if you want to do something to the other tds as well other wise use the last-child method described in one of the other answers.
$('td').each(function(){
var $this = $(this);
if ($this.index() == $this.siblings().length-1)
{
alert('123');
}
})
Upvotes: 8
Reputation: 187030
Try
$('tr td:last-child').each(function(){
var $this = $(this);
alert('123');
});
Upvotes: 13