JavaScript 数组元素返回 undefined

3

这是一个非常简单的 HTML 文档,其中包含一个 JavaScript 脚本。

...
<script type = "text/javascript"> src = "xxx.js"></script>
...

<body>
  <ul id ="pics">
    <li><a href="A.jpg">A</a></li>
    <li><a href="A.jpg">A</a></li>
    <li><a href="A.jpg">A</a></li>
  </ul>
</body>

这个js文件是:

var picspics = document.querySelectorAll("#pics ul > li > a");
alert(picspics[0]);

无论如何,它返回了undefined。如果只是alert picspics,它会返回"object nodelist",听起来还不错。

一开始,我认为这可能是一个DOM加载问题,所以我添加了

window.onload(){}

在我的代码之外,也失败了。

一切从我尝试使用for循环来迭代所有li > a元素并添加一个onclick事件开始。在Chrome控制台中显示a元素的数组未定义,因此我尝试使用alert函数进行调试。

之后,我尝试取消附加js文件,只加载html到Chrome中,然后在控制台中键入js代码,结果也如预期地失败了,这表明与window.onload函数相同。

无论如何,我的错误在哪里?picspics变量不应该返回包含3个a元素的数组吗?那么第一个元素怎么会是未定义的?

谢谢。

2个回答

2

您提供的查询是 var picspics = document.querySelectorAll("#pics ul > li > a"); 但是 picsul。请将其更改为:

var picspics = document.querySelectorAll("ul#pics > li > a");

谢谢,我没有足够的声望来投票,但还是谢谢。 - GLPease
随时可以!很高兴能帮忙! :) - Dom

1
选择器错误,应该是:


document.querySelectorAll("#pics > li > a");

谢谢,我没有足够的声望来投票,但还是谢谢。 - GLPease

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接