使用event.target获取类值?

时间:2010-01-24 20:49:07

标签: jquery

我有一个带有class ='tag'的DOM元素。

我想检查类值是否为标记,如果是真的则提醒消息。

我写道:

    $("#thread").each(function(event) {
        if(event.target.class == 'tag') alert('yes');
    });

但它不起作用。你可以使用event.target.id获取id,但不能使用此代码获取类?在event.target之后你能拥有的所有价值是什么?

5 个答案:

答案 0 :(得分:24)

if( $(event.target).hasClass("tag") )
{
   alert("yes");
}

这样可以正常工作。

答案 1 :(得分:14)

首先,event参数仅适用于事件处理程序,并且您使用的是$.each方法。

我真的不认为您需要/需要使用$.each方法,因为您使用的是#id选择器,而且ID应该是唯一的。

要检查元素是否包含特定类,您可以使用hasClass方法:

if ($("#thread").hasClass('tag')) {
  //...
}

此外,如果您有DOM元素,要获取它的class属性,您应该使用className而不是class来访问它,因为class将来的保留字< / em>在JavaScript中,与for等其他属性相同的事情应该以{{1​​}} ...

进行访问

答案 2 :(得分:1)

你正在错误地使用jquery的每个方法。它需要两个参数,它们中的任何一个都不是一个事件(它将响应目标属性)。来自docs

$.each([52, 97], function(index, value) { 
  alert(index + ': ' + value); 
});

请参阅CMS的答案,了解检查元素是否具有给定类名的正确方法。

答案 3 :(得分:0)

你走了。

$("div").each(function (index, domEle) {
    if (domEle.hasClass("tag")) {
        console.log('yes');
    } else {
        console.log('no');
    }
});

答案 4 :(得分:0)

只需在条件内使用:

!domEle.hasClass("tag")