我想要隐藏名为“mask”的所有div
这是我的 HTML :
<div id="first">
<div id="firsttest"></div>
<div class="one onehelp">
<div id="mask">
<div id="onetip"></div>
</div>
<div id="Div5"></div>
<div id="resultone"></div>
</div>
<div class="two twohelp">
<div id="mask">
<div id="twotip"></div>
</div>
<div id="Div6"></div>
<div id="resulttwo"></div>
</div>
<div class="three threehelp">
<div id="mask">
<div id="threetip"></div>
</div>
<div id="Div7"></div>
<div id="resultthree"></div>
</div>
</div>
我试图通过使用下面的JS代码来隐藏“掩码”,但它并不适用于所有div,仅适用于第一个。
var hidemask = document.getElementById("mask");
hidemask.style.display = "none";
有没有办法通过使用纯Javascript来隐藏它们。没有jQuery。
答案 0 :(得分:8)
您不应该在HTML中使用重复ID,请考虑将其更改为类。
如果您将id="mask"
更改为class="mask"
,则可以执行以下操作:
var hidemask = document.querySelectorAll(".mask");
for (var i = 0; i < hidemask.length; i++) {
hidemask[i].style.display = "none";
}
或者对于仍处于石器时代(IE7及以下版本)的浏览器,您可以这样做:
var elems = document.getElementsByTagName('*'), i;
for (i in elems) {
if((' ' + elems[i].className + ' ').indexOf(' ' + 'mask' + ' ') > -1) {
elems[i].style.display = "none";
}
}
答案 1 :(得分:2)
每个文档的id
属性必须唯一。您可以使用class
执行您想要的操作。所以你会有多个div
这样:
<div id="something" class="mask"></div>
然后你可以这样做:
var divsWithMask = document.querySelectorAll(".mask");
for(var i = 0; i < divsWithMark.length; i++) {
divsWithMak[i].style.display = "none";
}
答案 2 :(得分:1)
您不能多次分配相同的ID。
但是你可以为div添加一个属性类,其id为“mask”,例如:
<div id="mask-or-something-else" class="mask">...</div>
并按此类选择所有元素:
var hidemask = document.getElementsByClassName("mask");
for(i = 0; i < hidemask.length; i++)
hidemask[i].style.display = "none";