How to find whether Current TD is last TD in TR

2019-07-01 10:20发布

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.

5条回答
smile是对你的礼貌
2楼-- · 2019-07-01 10:41

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.

查看更多
【Aperson】
3楼-- · 2019-07-01 10:44

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.

查看更多
Luminary・发光体
4楼-- · 2019-07-01 10:47

You just need to use:

$(currentSelectedTD).is("td:last");
查看更多
爷、活的狠高调
5楼-- · 2019-07-01 10:49

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

if( $(currentSelectedTD).next().length == 0) {
    // is last 
}
查看更多
混吃等死
6楼-- · 2019-07-01 10:50

use-

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

or

$lastTd = $('.currentSelectedTD').parent('tr').find('td:last')
查看更多
登录 后发表回答