Javascript 如何检查TD是否是最后一行的类

Javascript 如何检查TD是否是最后一行的类,javascript,jquery,jquery-selectors,Javascript,Jquery,Jquery Selectors,我是jQuery新手,希望有人能帮我解决这个问题 我有一个带有动态添加行的大型HTML表 该表具有标准结构(包括THAD、tbody和tfoot) 此表中有可编辑的TDs(类为“editable”,包含内容可编辑的div)和不可编辑的TDs(类为“editable”且不包含div) 如果用户在这样一个div中,我想检查当前(最近的)TD是否是同一行中具有特定类的最后一个TD(“可编辑的”) 我尝试了下面的方法,但在这里不起作用。有人能告诉我我做错了什么吗 我的jQuery(文档就绪): $(do

我是jQuery新手,希望有人能帮我解决这个问题

我有一个带有动态添加行的大型HTML表

该表具有标准结构(包括THAD、tbody和tfoot)

此表中有可编辑的TDs(类为“
editable
”,包含内容可编辑的div)和不可编辑的TDs(类为“editable”且不包含div)

如果用户在这样一个div中,我想检查当前(最近的)TD是否是同一行中具有特定类的最后一个TD(“
可编辑的
”)

我尝试了下面的方法,但在这里不起作用。有人能告诉我我做错了什么吗

我的jQuery(文档就绪):

$(document).keydown(function(e){
    var current = $(e.target);
    // ...
    if($(current).closest('td').is('td.editable:last')){
        alert('last editable td in current row'); // test alert
    }
    // ...
});
<tr>
    <!-- ... -->
    <td class="editable"><div contenteditable="true"></div></td> <!-- editable -->
    <td class="editable"><div contenteditable="true"></div></td> <!-- editable -->
    <td></td> <!-- non-editable -->
    <td></td> <!-- non-editable -->
    <td class="editable"><div contenteditable="true"></div></td> <!-- editable -->
    <!-- ... -->
</tr>
我的HTML(示例行):

$(document).keydown(function(e){
    var current = $(e.target);
    // ...
    if($(current).closest('td').is('td.editable:last')){
        alert('last editable td in current row'); // test alert
    }
    // ...
});
<tr>
    <!-- ... -->
    <td class="editable"><div contenteditable="true"></div></td> <!-- editable -->
    <td class="editable"><div contenteditable="true"></div></td> <!-- editable -->
    <td></td> <!-- non-editable -->
    <td></td> <!-- non-editable -->
    <td class="editable"><div contenteditable="true"></div></td> <!-- editable -->
    <!-- ... -->
</tr>

尝试
:类型的最后一个
选择器?切勿使用
:last
:first
,因为它们在每个浏览器中的实现方式不同

if ($(current).closest('td').is('td.editable:last-of-type')) {
像使用jQuery一样使用

如果
最近的('td')
没有类
可编辑的

$('div')。单击(函数(){
var editables=$(this.closest('tr')。find('td.editable'))
var count=editables.length;
log('Is last editables.index($(this.closest('td'))==(count-1));
});

测试
测试
不可编辑
不可编辑
测试
不可编辑
嘿,你可以试试这个:

基本上,我所做的是以表标记为目标,使用最后一个类型的伪类查看它的后代

希望这能有所帮助。加油

$('table tr:last-of-type').css({backgroundColor: "pink"})


11
22
33
44
55
$(“table tr td.editable”).keydown(function(){
var col=$(this.parent().children().index($(this));
if(col=$(this.parent().children().size()-1){
警报(“当前行中最后一个可编辑的td”);//测试警报
}    
});

但最后一个类型是否可能匹配不带可编辑的td?它包括类。不是属性<代码>:D
这样就行了@keewee279很高兴它有所帮助。@PraveenKumar:对不起,因为我是新手,我也想问一下以下问题,以确保我的回答正确:这只会指当前行(tr),这是我需要的,对吗?另外,还有一个相反的“类型第一”吗?更新:再次感谢。我尝试了这个方法,它在行中运行良好,但在行的末尾无法运行,所以我接受了Ammar的解决方案。无论如何谢谢你的帮助!也非常感谢!更新:这看起来很有趣,但我没能让它工作。我不需要像$(current.closest('tr')这样的东西。查找。。。在这里始终引用当前行?@keewee279,请查看代码段,如果您有更多的问题,请告诉我-这非常有效,实际上比其他方法更好。我会接受这个。再次感谢!:)阿马尔!祝贺你<代码>加1也从我这边来!也谢谢你!