0

我试图在文档加载后隐藏一些元素。我设法做到这一点,但在使用orgetElementById时无法做到这一点。getElementsByClassNamegetElementsByTagName

我已经阅读了很多问题和答案,但找不到解决方案。这是小提琴样本。

javascript:

function myFunction() {
  document.getElementById("b").style.display="none";
  document.getElementsByTagName('p').style.display="none";
  document.getElementsByClassName("a").style.display="none";
}
onload = myFunction;

html:

<p>Tag Ele Test</p>
<p class="a">Class Test</p>
<p id="b">ID Test</p>
4

2 回答 2

2

getElementsByTagName()and的问题getElementsByClassName()在于两者都返回一组您需要迭代的元素,而getElementById()返回单个元素。

var elements = document.getElementsByTagName("p");
for (var i = 0; i < elements.length; i++) {
    elements[i].style.display = "none";
}

参考:

  1. https://developer.mozilla.org/en-US/docs/DOM/document.getElementsByTagName
  2. https://developer.mozilla.org/en-US/docs/DOM/document.getElementsByClassName
于 2013-01-20T17:05:34.770 回答
2

getElement s ( byTagName, byClassName) 确实返回 a NodeList,您需要对其进行迭代。它没有单一的style声明属性。

var element = document.getElementById("b");
if (element != null)
    element.style.display = "none";
var elements = document.getElementsByTagName('p');
for (var i=0; i<elements.length; i++)
    elements[i].style.display = "none";
elements = document.getElementsByClassName("a");
for (var i=0; i<elements.length; i++)
    elements[i].style.display = "none";
于 2013-01-20T17:06:25.207 回答