javascript - 独家 CSS 选择器

标签 javascript css css-selectors

我正在处理一个页面,其中列表中的所选元素的特点是没有给定的类。类似于以下内容:

<ul>
  <li class="a">not selected</li>
  <li class="a b">selected</li>
  <li class="a">not selected</li>
</ul>

我想定义一个 CSS 选择器来获取页面中只有 a 类的 li 节点。 毫不奇怪,以下声明是不够的:

document.querySelectorAll('li.a')

因为它返回具有 a 类的所有 li 节点。

对这种情况有经验吗?

最佳答案

在这种情况下,您可以考虑这样的属性选择器:

console.log(document.querySelectorAll('li[class="a"]').length)
li[class="a"] {
  color:red;
}
<ul>
  <li class="a">Select me</li>
  <li class="a b c d more classes">Don't select me</li>
  <li class="a b">Don't select me</li>
  <li class="a">Select me</li>
</ul>

只需注意多余的空格:

console.log(document.querySelectorAll('li[class="a"]').length)
li[class="a"] {
  color:red;
}
<ul>
  <li class="a ">Pay attention to this one !!</li>
  <li class="a b">Don't select me</li>
  <li class="a">Select me</li>
</ul>

但由于您使用的是 JS,因此您可以使用 trim()摆脱多余的空间:

var elem=document.querySelectorAll('li');
for(var i=0;i<elem.length;i++)
  elem[i].className=elem[i].className.trim();

console.log(document.querySelectorAll('li[class="a"]').length)
li[class="a"] {
  color:red;
}
<ul>
  <li class="a ">Pay attention to this one !!</li>
  <li class="a b">Don't select me</li>
  <li class="a">Select me</li>
</ul>

关于javascript - 独家 CSS 选择器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52557181/

相关文章:

html - 在 CSS3 中使用 nth-child() 选择 double

javascript - @section 脚本与 ASP.Net WebForm 中使用的常用脚本标记之间的区别

ReactJS渲染类名中的javascript嵌套函数调用

css - 在 IE 兼容模式下 form 脱离 div

CSS 选择 :not the child elements of the parent element

html - btn-group 下拉菜单不起作用,但 nav-item 下拉菜单在带有 Bootstrap 的 Angular 中起作用

html - 如何选择特定的第一个 child

css - 通过 CSS 设计 SOS 点功能

javascript - dc.js - 隐藏 div 容器,直到创建 svg

javascript - jQuery.Deferred.prototype.then : returns an object with behaviour I don't understand