javascript - document.getElementById 有效,但 document.getElementsByTagName 无效

标签 javascript getelementbyid getelementsbytagname

要选择 div 内的所有 p 标签 - 它适用于 document.getElementById()但不包括 document.getElementsByTagName() 。这是为什么?

<div id="myDIV">
   <h2 class="example">A heading with class="example" in div</h2>
   <p>Para 1 first</p> 
   <p>Para 2</p> 
   <p>Para 3</p> 
   <p>Para 4</p> 
</div>

<button onclick="myFunction()">Submit</button>

这有效

function myFunction() {
    var x = document.getElementById("myDIV").querySelectorAll("p");
    var i;
    for (i = 0; i < x.length; i++) {
        x[i].style.backgroundColor = "red";
    }
}

这不

function myFunction() {
    var x = document.getElementsByTagName("div").querySelectorAll("p");
    var i;
    for (i = 0; i < x.length; i++) {
        x[i].style.backgroundColor = "red";
    }
}

最佳答案

我建议使用直接选择器,例如:

document.querySelectorAll("#myDIV p");
//Or
document.querySelectorAll("div p");

希望这有帮助。

var x = document.querySelectorAll("div p");
var i;

for (i = 0; i < x.length; i++) {
  x[i].style.backgroundColor = "red";
}
<div id="myDIV">
   <h2 class="example">A heading with class="example" in div</h2>
   <p>Para 1 first</p> 
   <p>Para 2</p> 
   <p>Para 3</p> 
   <p>Para 4</p> 
</div>

关于javascript - document.getElementById 有效,但 document.getElementsByTagName 无效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42065528/

相关文章:

javascript - Canvas 图像数据多像素插入

javascript - 我如何在 Express 和 Node.js 中使用 slug?

javascript - 如何显示JS当前使用的H1字体

javascript - getElementsByTagName 'undefined' 在 Firefox 和 Chrome 中?

javascript - 如何通过鼠标悬停来播放和暂停视频并使用 getElementsByTagName 设置模糊

javascript - 协作式 JSON 查看器/解析器

javascript - 获取 "Cannot set property ' src' of null”但该元素存在

Javascript 隐藏显示 getElementById 与 getElementsByClassName

javascript - 为什么 getElementsByTagName 在这个逻辑中不起作用?

javascript - 在列表长度中重复 div 部分(Ionic)