收集div并对它们执行CSS:HTMLCollection vs Array

Ren*_*mer 4 html javascript css arrays

想知道我如何才能正常工作:

var ArrayTest = [1,2,3,4,"test"];
var ArrayTest2 = document.getElementsByClassName('mydiv');
ArrayTest2.forEach( function(){
    this.style.display = 'none'; 
});
Run Code Online (Sandbox Code Playgroud)

所以ArrayTest作为一个回来Array,但是ArrayTest2作为一个回来HTMLCollectionforEach抛出一个"未定义"的类型错误.

如何收集所有具有相同类名的元素数组,然后在每个元素上执行相同的CSS?

Ian*_*Ian 7

我会通过添加一个CSS类来做一个稍微不同的方式,并且可能通过使用jQuery来让你的生活更轻松:

$(".mydiv").addClass("no-display");
Run Code Online (Sandbox Code Playgroud)

然后在你的CSS中

.no-display {
    display: none;
}
Run Code Online (Sandbox Code Playgroud)

如果要分配特定的内联属性,则可以使用:

$(".mydiv").css("display", "none");
Run Code Online (Sandbox Code Playgroud)

编辑

好吧,对于纯JavaScript方法

for (var i = 0; i < ArrayTest2.length; i++) {
   ArrayTest2[i].style.display = "none"; 
}
Run Code Online (Sandbox Code Playgroud)

  • @RenaissanceProgrammer:你没有提到纯 JavaScript,尽管我很欣赏没有 jQuery 标签。由于网站上的知识多种多样,很难判断人们是否了解 jQuery。无论如何,我添加了一个纯 JavaScript 解决方案 (2认同)