use event.target to get the class value?
i have a DOM element with class='tag'.
i want to check if the class value is tag and 开发者_开发知识库alert a message if it's true.
i wrote:
$("#thread").each(function(event) {
if(event.target.class == 'tag') alert('yes');
});
but it didn't work. you can get the id with event.target.id but not the class with this code? what are all the values you can have after event.target?
if( $(event.target).hasClass("tag") )
{
alert("yes");
}
This will work fine.
At first, the event
argument work only for event handlers, and you are using the $.each
method.
I don't really think that you want/need to use the $.each
method, since you are using an #id
selector, and id's should be unique.
To check if an element contains an specific class you can use the hasClass
method:
if ($("#thread").hasClass('tag')) {
//...
}
Also if you have a DOM element, to get it's class attribute, you should access it with className
instead class
, that's because class
is a future reserved word in JavaScript, the same thing happens with other attributes like for
, should be accessed as htmlFor
...
you are using jquery's each method incorrectly. it takes two arguments, neither one of them is an event (that would respond to the target property). from the docs:
$.each([52, 97], function(index, value) {
alert(index + ': ' + value);
});
See CMS's answer for the proper way of checking if elements have a given class name.
Here you go.
$("div").each(function (index, domEle) {
if (domEle.hasClass("tag")) {
console.log('yes');
} else {
console.log('no');
}
});
Just use inside the condition:
!domEle.hasClass("tag")
精彩评论