2010-01-24 30 views
9

我有一个class ='tag'的DOM元素。使用event.target获取类值?

我想检查类的值是否标记,并提示消息,如果它是真的。

我写道:

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

,但没有奏效。你可以用event.target.id得到id,但不能用这个代码得到这个类? event.target后可以拥有的所有值是什么?

回答

14

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

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

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

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

此外,如果你有一个DOM元素,以获得它的类属性,你应该className代替class访问它,这是因为class是一个JavaScript 未来保留字,同样的事情发生与像for其他属性,应htmlFor访问...

+3

我在哪里可以找到所有与event.target使用的属性? – ajsie

+0

它说event.target未定义? – ajsie

1

您使用jqu每个方法都不正确。它有两个参数,它们都不是一个事件(它会响应目标属性)。从docs

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

见CMS的答案检查是否元素有一个给定的类名称的正确方法。

0

你在这里。

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

如果有东西没有课,有没有办法计算小时数?这与此相反吗? – user982853

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

这将正常工作。

+0

是的确的... =) – Roylee

+2

接受的答案回答了具体的例子,但这个答案回答了这个问题 – RasTheDestroyer

+0

这应该是被接受的答案。 – respectTheCode

0

条件中只需使用:

!domEle.hasClass("tag")