由于多个类,jQuery和If语句不匹配

How*_*opa 5 jquery

我有DOM元素我想通过添加一个类"noEdit"从.click函数中排除我遇到的问题是这些元素中的一些有多个类,即:

<td class="firstCol noEdit"> // <-- wont work
<td class="noEdit"> // <-- works fine
Run Code Online (Sandbox Code Playgroud)

和jQuery:

$('td').click( function(){
    if($(this).attr('class') != "noEdit"){
        alert('do the function');
    });
Run Code Online (Sandbox Code Playgroud)

想法?

Bol*_*ock 7

如果使用查询class属性attr(),它只会将值作为单个字符串返回.然后您的第一个条件失败,<td>因为您的代码将尝试进行比较

"firstCol noEdit" != "noEdit"
Run Code Online (Sandbox Code Playgroud)

返回true(因为它们不相等)并导致显示警报.

您将要查看该hasClass()函数,它会为您解析类列表并检查属性中是否存在给定的类:

$('td').click(function() {
    if (!$(this).hasClass("noEdit")) {
        alert('do the function');
    }
});
Run Code Online (Sandbox Code Playgroud)