我有一个带有class ='tag'的DOM元素。
我想检查类值是否为标记,如果是真的则提醒消息。
我写道:
$("#thread").each(function(event) {
if(event.target.class == 'tag') alert('yes');
});
但它不起作用。你可以使用event.target.id获取id,但不能使用此代码获取类?在event.target之后你能拥有的所有价值是什么?
答案 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")