如何删除表第一行上的单击事件

时间:2013-07-26 07:19:14

标签: jquery html html-table click

我尝试用每个行在表格上设置click事件。

这是表格:

<table border='1px'>
    <tr>
        <td class='td'>first row frist column</td>
        <td>first row second column</td>
    </tr>
    <tr>
        <td class='td'>second row frist column</td>
        <td>second row second column</td>
    </tr>
    <tr>
        <td class='td'>third row frist column</td>
        <td>third row second column</td>
    </tr>
</table>

这是简单的jQuery: -

$('table tbody tr  td:nth-child(1)').live('click',function(){
alert($(this).text());
})

有了这个,我点击第一列的任何一个然后在它的警报我要取消设置表第一行列点击事件。

我该怎么办呢。

6 个答案:

答案 0 :(得分:2)

您可以使用:not()伪选择器排除点击装订中的第一行。

$('table tbody tr:not(:first) td:first-child')

这将向所有第一列附加一个单击处理程序,第一行中的第一列除外。 Here是上述的jsFiddle。

答案 1 :(得分:2)

试试这个,DEMO http://jsfiddle.net/yeyene/CGbXP/4/

为所有列提供课程col+number。然后使用......

var i = 1;
$('td').each(function(){    
    $(this).addClass('col'+i);
    i = i+1;
});

$('table').find("td:not(.col4)").on('click',function(){
    alert($(this).text());
})

答案 2 :(得分:1)

  

由于jQuery的更高版本提供,因此不再推荐使用.live()方法   更好的方法没有它的缺点

在最新版本的jquery中不推荐使用

.live

试试这个

$('table tbody tr:not(:first)').on('click',function(){
alert($(this).text());
});

JsFiddle

答案 3 :(得分:1)

试试此代码

    $('table tbody tr:not(:first-child)  td').click(function(){
alert($(this).text());
})

http://jsfiddle.net/pepean/JP9EM/

答案 4 :(得分:1)

您可以立即排除选择器中的第一行,通过指定它只应用于索引大于0的所有行:

$('table tbody tr:gt(0) td:nth-child(1)').live('click',function(){
    alert($(this).text());
});

但是,在最近的jQuery版本中,.live已被弃用,甚至已在1.10中删除,因此您应该使用.on代替:

$('table tbody tr:gt(0) td:nth-child(1)').on('click',function(){
    alert($(this).text());
});

最后,如果你应该有嵌套表,你的选择器将返回太多的命中。请改为选择直接儿童:

$('table > tbody > tr:gt(0) > td:nth-child(1)').on('click',function(){
    alert($(this).text());
});

演示:http://jsfiddle.net/2FkDY/

答案 5 :(得分:0)

我认为您不必在第一行上课,然后使用onclick事件。

$('.td').on('click', function() { 
     //do your stuff here

});

希望有所帮助