使用 querySelector 排除 id 包含特定字符串的元素
Using querySelector exclude elements whose id's include a specific string
我想获得其 ID 不包含字符串的结果(假设它是 "test")
<ul class="numberlist">
<li id="test1" style="display:none">
<div></div>
</li>
<li>
<a>one</a>
</li>
<li>
<a>two</a>
</li>
<li>
<a>three</a>
</li>
<li id="test2" style="display:none">
<div></div>
</li>
<li>
<a>four</a>
</li>
<li id="test" style="display:none">
</div></div>
</li>
</ul>
正如我所说,我想排除其中包含字符串 test
的 ID。我怎样才能实现它?
我可以通过写
得到<li>
的列表
document.querySelectorAll('ul.numberList')
但我想通过 ID 排除其中一些。
我猜您正在寻找 :not()
和 "starts with" 选择器:
document.querySelectorAll('ul.numberList li:not([id^=test])')
(如果您想要 "includes",而不是 "starts with",则将 ^
替换为 *
)
你可以使用attribute contains selector with :not()
伪class选择器
document.querySelectorAll('ul.numberlist li:not([id*="test"])')
console.log(document.querySelectorAll('ul.numberlist li:not([id*="test"])').length)
<ul class="numberlist">
<li id="test1" style="display:none">
<div></div>
</li>
<li>
<a>one</a>
</li>
<li>
<a>two</a>
</li>
<li>
<a>three</a>
</li>
<li id="test2" style="display:none">
<div></div>
</li>
<li>
<a>four</a>
</li>
<li id="test" style="display:none">
<div></div>
</li>
</ul>
FYI : document.querySelectorAll('ul.numberList')
,没有得到所有 li
元素,而是得到所有 ul
和 class numberList
。要获得所有 li
内部使用选择器作为 ul.numberList li
。同样在你的 html class 名称中是 numberlist
而不是 numberList
.
我想获得其 ID 不包含字符串的结果(假设它是 "test")
<ul class="numberlist">
<li id="test1" style="display:none">
<div></div>
</li>
<li>
<a>one</a>
</li>
<li>
<a>two</a>
</li>
<li>
<a>three</a>
</li>
<li id="test2" style="display:none">
<div></div>
</li>
<li>
<a>four</a>
</li>
<li id="test" style="display:none">
</div></div>
</li>
</ul>
正如我所说,我想排除其中包含字符串 test
的 ID。我怎样才能实现它?
我可以通过写
得到<li>
的列表
document.querySelectorAll('ul.numberList')
但我想通过 ID 排除其中一些。
我猜您正在寻找 :not()
和 "starts with" 选择器:
document.querySelectorAll('ul.numberList li:not([id^=test])')
(如果您想要 "includes",而不是 "starts with",则将 ^
替换为 *
)
你可以使用attribute contains selector with :not()
伪class选择器
document.querySelectorAll('ul.numberlist li:not([id*="test"])')
console.log(document.querySelectorAll('ul.numberlist li:not([id*="test"])').length)
<ul class="numberlist">
<li id="test1" style="display:none">
<div></div>
</li>
<li>
<a>one</a>
</li>
<li>
<a>two</a>
</li>
<li>
<a>three</a>
</li>
<li id="test2" style="display:none">
<div></div>
</li>
<li>
<a>four</a>
</li>
<li id="test" style="display:none">
<div></div>
</li>
</ul>
FYI : document.querySelectorAll('ul.numberList')
,没有得到所有 li
元素,而是得到所有 ul
和 class numberList
。要获得所有 li
内部使用选择器作为 ul.numberList li
。同样在你的 html class 名称中是 numberlist
而不是 numberList
.