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

<td class="firstCol noEdit"> // <-- wont work
<td class="noEdit"> // <-- works fine

和jQuery:
$('td').click( function(){
    if($(this).attr('class') != "noEdit"){
        alert('do the function');
    });

有什么想法吗?

最佳答案

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

"firstCol noEdit" != "noEdit"

它返回true(因为它们不相等),并显示警报。

您将要查看hasClass()函数,该函数为您解析类列表并检查属性中给定类的存在:
$('td').click(function() {
    if (!$(this).hasClass("noEdit")) {
        alert('do the function');
    }
});

09-18 14:17