从jquery函数中排除具有特殊类的元素

时间:2014-05-08 13:50:29

标签: jquery

我使用函数将类添加到用于悬停效果的td元素:

    $("#document-table tr").hover(function() {
    if $('tr:has(td.nodrag)'){
    return false;   
    } else {
    $(this.cells[0]).addClass('showDragHandle');
}, function() {
    $(this.cells[0]).removeClass('showDragHandle');
});

});

tr

的示例
<tr class="nodrag"></tr>

现在,我想用类nodrag排除所有tr。实际上,它会抛出一个错误:意外的标识符

出了什么问题?提前谢谢

4 个答案:

答案 0 :(得分:1)

您可以在jquery对象上执行此操作:

.not('tr.nodrag')

或:

.filter(':not(tr.nodrag)')

答案 1 :(得分:0)

您可以使用CSS中的:hover伪类来执行此操作,而无需任何javascript代码

答案 2 :(得分:0)

您还可以使用.hasClass()方法进行检查。这会使你的if语句变成这样的东西:

if ( $("tr").hasClass("nodrag") ) { ... }

答案 3 :(得分:0)

您可以使用tr。

上的:not选择器
$('#document-table tr:not(".nodrag")').hover(function() {
    $(this.cells[0]).addClass('drag');
  }, 
  function(){$(this.cells[0]).removeClass('drag');}
);

请参阅jsFiddle