jQuery: Select an element only when it has no clas

2020-06-09 05:55发布

How can I use jQuery to select an element only if it doesn't have any classes?

I'm writing a page which allows the html author to override the default jQuery action by adding a class to the element. It should be any class at all.

So the markup might be:

<ul>
  <li class="override"></li>
  <li></li>
</ul>

I'd like jQuery to only select the second list element because it doesn't have a class.

I've looked at .hasClass(), but it seems to require a specific class name.

Thanks!

4条回答
对你真心纯属浪费
2楼-- · 2020-06-09 06:30
闹够了就滚
3楼-- · 2020-06-09 06:33

This should do it:

$('li:not([class]),li[class=""]')

Demo: http://jsfiddle.net/aMC5X/

The first part, li:not([class]) uses the "not selector" with the "has attribute" to find any li elements that don't have the class attribute at all.

The second part, li[class=""] finds any li elements that have the attribute set to an empty string.

查看更多
女痞
4楼-- · 2020-06-09 06:37

This should do the thing: $('li').not('li[class]')

查看更多
爱情/是我丢掉的垃圾
5楼-- · 2020-06-09 06:45

You can use this:

if (!jQuery('li').hasClass('myClass') {
    do something...
}
查看更多
登录 后发表回答