问题描述
我只想选择具有某个第一类(价格)的跨度,而不选择也具有第二类(ishidden)的类似跨度。
<div class="classbla classble classbli">
<div class="classblo">
<span class="price ishidden ">
</span>
</div>
</div>
我尝试过:
var z = document.querySelectorAll('.price');
这:
var z = document.querySelectorAll('.price span:not(.price.ishidden)');
这:
var z = document.querySelectorAll('.price','span:not(.ishidden)');
和其他一些变体,但没有成功:它总是选择所有以'price'开头的元素,无论它们是仅具有第一类还是具有两个类。
此外,我正在非我的网站上尝试使用导航器控制台。
解决方法
尝试document.querySelectorAll('.price:not(.ishidden)')
根据https://developer.mozilla.org/
由于所有CSS选择器字符串均有效,因此您也可以取消选择器:
var el = document.querySelector(“ div.user-panel:not(.main)input [name ='login']”);
这将选择一个带有父div且具有用户面板类而不是主类的输入。
var elem = document.querySelectorAll('.price:not(.ishidden)');
console.log(elem[0])
<div class="classbla classble classbli">Test
<div class="classblo">Test1
<span class="price ishidden">Test2
</span>
<span class="price">Test3
</span>
</div>
</div>
,
这对我来说很好。它会选择所有具有类别价格且未筛选的元素
document.querySelectorAll('.price:not(.ishidden)')