为什么我无法让这个非常简单的脚本工作。它适用于querySelector,但不适用于querySelectorAll
HTML
<p id="log2"></p>
<script type="text/javascript" src="dom.js"></script>
JS
var q = document.querySelectorAll("#log2").innerHTML+="<p>qwerty</p>";
答案 0 :(得分:4)
querySelectorAll
返回NodeList(类似于数组),而不是单个HTMLElement。
您需要从中抓取第一个元素([0]
)或循环它。
将All
与ID选择器一起使用毫无意义,因为ID必须是唯一的。
<p class="log2"></p>
<p class="log2"></p>
<p class="log2"></p>
<script>
var nodes = document.querySelectorAll(".log2");
for (var i = 0; i < nodes.length; i++) {
nodes[i].innerHTML+="<p>qwerty</p>";
};
</script>
答案 1 :(得分:2)
document.querySelectorAll
会返回NodeList
个元素(即多个元素)。
要选择第一个元素,请使用document.querySelectorAll("#log2")[0]
或document.querySelector("#log2")
。
在您的情况下,您尝试按ID获取元素,该元素应该只是页面上的一个元素。因此,您可以改为使用跨浏览器方法document.getElementById("log2")
。