简体   繁体   English

Javascript以一类两个来获取所有元素

[英]Javascript get all elements with one class of two

i have many divs with class="cat-box" and class="cat-box hidden". 我有很多div,其中class =“ cat-box”和class =“ cat-box隐藏”。

I create a javascript to view all classes with cat-box, but it's counting both of "cat-box" and "cat-box hidden". 我创建了一个JavaScript,以查看所有带有cat-box的类,但是它同时计算了“ cat-box”和“ cat-box hidden”。

How can I count only elements with class cat-box? 如何只计算类别为cat-box的元素?

My script: 我的剧本:

function GetMore() {
  var allvis = document.getElementsByClassName('cat-box').length;
  alert(allvis);
}

您可以使用:not CSS伪类来实现此目的: document.querySelectorAll('.cat-box:not(.hidden)');

Use document.querySelectorAll() with a selector that excludes the hidden elements. document.querySelectorAll()与不包含hidden元素的选择器一起使用。

Here's an example... 这是一个例子

 function GetMore() { var allvis = document.querySelectorAll('.cat-box:not(.hidden)').length; alert(allvis); } document.getElementById("count").addEventListener("click", GetMore); 
 .hidden { color: rgb(200, 200, 200); } 
 <div class="cat-box">cat box</div> <div class="cat-box hidden">cat box</div> <div class="cat-box">cat box</div> <div class="cat-box hidden">cat box</div> <div class="cat-box">cat box</div> <button id="count">count</button> 

Use querySelector and not in your javascript for that: 使用querySelectornot在您的JavaScript中:

function GetMore() {
  var allvis = document.querySelectorAll('.cat-box:not(.hidden)').length;
  alert(allvis);
}

 function GetMore() { var allvis = document.querySelectorAll('.cat-box:not(.hidden)').length; alert(allvis); } GetMore(); 
 <div class="cat-box"></div> <div class="cat-box"></div> <div class="cat-box hidden"></div> 

如果您使用jQuery

$("div.cat-box")

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM