Jquery在click事件中排除第一个td?

时间:2012-01-13 03:54:22

标签: javascript jquery

如何排除我在下面创建的jquery的click事件中的第一个td?我想在生成对话框的click事件中排除行的所有第一个td。

jQuery("#list tbody tr").click(function(){

//some code here

});

<table>
    <tr>
        <td>first</td>
        <td></td>
        <td></td>
    </tr>
    <tr>
        <td>first</td>
        <td></td>
        <td></td>
    </tr>
</table>

6 个答案:

答案 0 :(得分:15)

如何使用first-child选择器与:not结合使用

jQuery("#list tbody tr td:not(:first-child)").click(function(){
    //some code here
});

示例: http://jsfiddle.net/Rq8Xf/

答案 1 :(得分:3)

试试这个,

jQuery("#list tbody tr").each(function() {
    jQuery("td:not(:first)",this).click(function() {
        alert($(this).text());
        //some code here
    });
});

记住你也在html中使用tbody

答案 2 :(得分:1)

jQuery("#list tbody tr td:not(:first)")

答案 3 :(得分:1)

$('#list tr td:not(:first)').click(function() {
    // ...
})

顺便说一句。你从哪里得到的?另外,你的表需要一个id =“list”,所以:

<table id="list">
    <tr>
        <td>first</td>
        <td></td>
        <td></td>
    </tr>
    <tr>
        <td>first</td>
        <td></td>
        <td></td>
    </tr>
</table>

答案 4 :(得分:0)

jQuery("#list tbody td").not(':first').click(function(){

    //some code here

});

答案 5 :(得分:0)

无论是第一个还是中间,我通常都会在 td 上放置一个属性,表示 noclick 并执行以下操作:

<table>
    <tr>
        <td></td>
        <td noclick></td>
        <td></td>
    </tr>
    <tr>
        <td></td>
        <td noclick></td>
        <td></td>
    </tr>
</table>

然后运行

$('table tr td:not([noclick]').on('click', (obj) => {
    let el = obj.currentTarget;
  
  $(el).css('background-color', 'red');
});

jsFiddle:https://jsfiddle.net/9j2qL7b0/

相关问题