querySelectorAll什么都不做

时间:2013-12-27 11:19:52

标签: javascript

为什么我无法让这个非常简单的脚本工作。它适用于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>";

2 个答案:

答案 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")