GirishK
GirishK

Reputation: 1963

How to find whether Current TD is last TD in TR

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.

Upvotes: 3

Views: 2248

Answers (5)

Yacoub Oweis
Yacoub Oweis

Reputation: 372

You just need to use:

$(currentSelectedTD).is("td:last");

Upvotes: 0

Jon
Jon

Reputation: 437376

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.

Upvotes: 0

Corneliu
Corneliu

Reputation: 2942

You can use .next() to check if the element has the immediately following sibling.

if( $(currentSelectedTD).next().length == 0) {
    // is last 
}

Upvotes: 4

Vivek
Vivek

Reputation: 11028

use-

if($('.currentSelectedTD:last')){
//do what ever you want
}

or

$lastTd = $('.currentSelectedTD').parent('tr').find('td:last')

Upvotes: 0

James McCormack
James McCormack

Reputation: 9944

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.

Upvotes: 0

Related Questions