如何使用jQuery选择一行中除第一列以外的所有表格列?

4
我想让表格行可点击。所有列都需要可点击,但第一列除外。然而,我希望当他们点击行时实现这一点。
这是我目前拥有的代码:
    $('.table tbody tr').click( function (e) {
        alert ($(this).find('td').eq(1).text());
    } );

这段代码始终会执行,无论我在行内的哪个位置点击。然而,我想要所有表格单元格都可点击,除了第一个。

这种操作是否可行?

3个回答

6
你可以这样做:

你可以像这样操作:

$('.table tbody tr').on('click', function(e) {
    if ($(e.target).closest('td:first-child').length) {
        return;
    }

    // your code
});

这段代码的意思是:“如果被点击的元素是 td:first-child 或者它的祖先元素是 td:first-child,则不做任何操作;否则继续执行。”

jsFiddle


这个很好用!太棒了,谢谢你提供这段代码,我从来没有想到过。+1并接受! - Radical_Activity
这是一个非常好的答案,我从来不知道.closest()会将自身与传递给它的选择器进行比较。 - billyonecan
这太棒了,我从未想过这个。 - Taha Rehman Siddiqui

1
使用CSS Not选择器并跳过第一个tr元素:
$('.table tbody tr:not(:first-child)').click( function (e) {
    alert ($(this).find('td').eq(1).text());
} );

1
跳过第一行。OP想要跳过第一列(即每个tr中的第一个td)。 - lonesomeday
@lonesomeday,谢谢你的回答,我误解了问题。对你的回答点赞。 - juju

1

尝试像这样使用委托事件:

$('.table tbody tr').delegate( 'td', 'click', function() {
   alert ($(this).text());
    // implement your logic...

});


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接