我想编写一个CSS选择器规则,选择所有没有特定类的元素.例如,给定以下HTML:
<html class="printable">
<body class="printable">
<h1 class="printable">Example</h1>
<nav>
<!-- Some menu links... -->
</nav>
<a href="javascript:void(0)" onclick="javascript:self.print()">Print me!</a>
<p class="printable">
This page is super interresting and you should print it!
</p>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
我想编写一个选择器来选择所有没有"可打印"类的元素,在这种情况下,它是nav和元素.
这可能吗?
注意:在我想要使用它的实际HTML中,将会有更多的元素没有 "可打印"类而不是(我在上面的例子中意识到它是另一种方式).
给出以下HTML:
<div style="background-color:green"/>
<div>text</div>
Run Code Online (Sandbox Code Playgroud)
大多数浏览器以绿色显示文本,表示<div/>速记未被识别为"已结束",并且跨越以包裹第二个<div>.
或者这是标准所说的?
尝试找到一个选择器来获取所有没有类且没有设置 id 的元素。
到目前为止,我有 2 个不同的输出,具体取决于选择器中是否有空格:
// outputs
var noID = $('*:not([id])');// 144 - may have a class
var noClass = $('*:not([class])'); // 100 - may have an id
var withSpace = $('*:not([id]) *:not([class])'); // 99 ?
var noSpace= $('*:not([id])*:not([class])'); // 84 ?
Run Code Online (Sandbox Code Playgroud)
哪一个是正确的,我的猜测是noSpace- 但我不知道。以前有人尝试过这个吗?
我的猜测是,通过空格,选择器将进入没有 ID 的标签,并选择没有与之关联的类的子元素。
结果noSpace是正确的,因为它只选择没有类和 id 的元素。
有人可以验证吗?谢谢!
使用此选择器可以查找既没有类也没有与其关联的 id 的元素。
$('*:not([id]):not([class])');
Run Code Online (Sandbox Code Playgroud)
奖励:$('body *:not([id]):not([class])');- 如果您只想处理实际内容