I have a single row and multiple <td>
s in it. In one of my functions I come across a situation where I have to find out whether my currentSelectedTD
is the last <td>
in the row so that I can treat it diffrently.
I tried $(currentSelectedTD).is(":last")
which is not working and always returns true
.
I have also tried couple of other possibilities which are not working.
Thanks in advance.
You can use .next() to check if the element has the immediately following sibling.
if( $(currentSelectedTD).next().length == 0) {
// is last
}
Think you should do :last
filter on the full set and store the result in a variable.
Then do a loop through the set and compare each one with the one you stored.
use-
if($('.currentSelectedTD:last')){
//do what ever you want
}
or
$lastTd = $('.currentSelectedTD').parent('tr').find('td:last')
You can check for this quite easily, and without tapping into jQuery:
var isLastChild = currentSelectedTD.parentNode.lastElementChild == currentSelectedTD;
This has the advantage of being both native DOM and simple, however it would only work on a modern browser (e.g. needs IE9). You can tweak it to work with anything, but then it wouldn't be an one-liner.
You just need to use:
$(currentSelectedTD).is("td:last");