开发者

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")
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜