我正在修改现有WordPress主题的CSS。主题有很多特殊的列表样式,附加到<li>
元素。因此,应用于list-style:none
元素的通用<li>
规则。
我想更新CSS以重新添加没有附加类的list-style
元素的<li>
默认值(即那些没有应用特殊样式的元素)。这需要有选择性,以免破坏花哨的效果。
我知道:not()伪选择器,并且可能最终使用它来专门排除每个可能的类;然而,有十几个,这似乎是一个维护噩梦。
有没有办法,使用CSS或jQuery,通过指定它有 no 类设置来选择一个元素?
答案 0 :(得分:8)
$('li:not([class])');
应该做你需要的。
考虑到Dan的评论 - 因为您未指定我认为您的意思是li
根本没有class
属性。如果您需要抓取<li class>
或<li class="">
...
$('li:not([class])');
$('li[class=]');
$('li[class=""]');
答案 1 :(得分:2)
jQuery:$('li[class=]')
(选择既没有类属性的元素,也选择属性存在的元素,但是为空)
遗憾的是,CSS选择器li[class=""]
的工作方式不同。它仅选择属性所在的元素,但为空(例如:<li class></li>
或<li class=""></li>
)
$('li:not([class])')
解决方案可能不是您想要的(它不会选择具有class属性但仍为空的元素。)
假设:
<ul>
<li>item 1</li>
<li class>item 2</li>
<li class="">item 3</li>
<li class="some-class">item 4</li>
</ul>
$('li[class=]')
选择1,2,3
$('li[class=""]')
选择2,3
$('li:not([class])')
仅选择1
答案 2 :(得分:0)
有趣的是,你可以这样做:
$('li[class=]')
或
$('li:not([class]=)')
ķ