jQuery在点击事件中排除特定的TD?

时间:2017-11-23 10:26:31

标签: javascript jquery

如何从我在下面创建的jQuery的TD事件中排除特定的row(如第一个)?

jQuery("#list tbody tr").click(function(){
alert('click this');
//some code here
});

jQuery("#list tbody tr td.exclude").click(function(){
alert('click not that');
//some code here
});
td { border: 1px solid black; padding: 5px; }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table id="list">
    <tr>
        <td class="exclude">first</td>
        <td>second</td>
        <td>third</td>
    </tr>
    <tr>
        <td class="exclude">first</td>
        <td>second</td>
        <td>third</td>
    </tr>
</table>

我需要能为我的row举办活动,但要从课程TD中排除exclude,这可能吗?

6 个答案:

答案 0 :(得分:1)

您可以使用not方法排除元素:

$('#list tr td').not('.exclude').on('click', function(e) {
    console.warn('click!');
});

答案 1 :(得分:1)

尝试使用选择器中的:not()

jQuery("#list tbody tr td:not(.exclude)").click(function(){
alert('click this');
//some code here
});
td { border: 1px solid black; padding: 5px; }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table id="list">
    <tr>
        <td class="exclude">first</td>
        <td>second</td>
        <td>third</td>
    </tr>
    <tr>
        <td class="exclude">first</td>
        <td>second</td>
        <td>third</td>
    </tr>
</table>

答案 2 :(得分:1)

您可以在事件对象上使用target属性,并检查它是否具有类exclude

$('tr').click(function(e) {
  if (!$(e.target)
    .parents()
    .andSelf()
    .hasClass('exclude')) {
    alert('Click')
  }
})
td {
  border: 1px solid black;
  padding: 5px;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table id="list">
  <tr>
    <td class="exclude"><div><span>first</span></div></td>
    <td>second</td>
    <td>third</td>
  </tr>
  <tr>
    <td class="exclude">first</td>
    <td>second</td>
    <td>third</td>
  </tr>
</table>

答案 3 :(得分:0)

您可以在jQuery中使用:not选择器,因此它看起来像这样:

jQuery("#list tbody tr td:not(.exclude)").click(function(){
  alert('click this');
  //some code here
});

答案 4 :(得分:0)

您可以在一次通话中使用:not css选择器:

jQuery("#list tbody tr td:not(.exclude)");

答案 5 :(得分:0)

试试这个你会得到你的目标......

$(document).ready(function(e) {
$('#list tr').click(function(e) {
  if (!$(e.target).hasClass('exclude')) {
    alert('Click')
  }
})

});