这是一个非常简单的 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元素的数组吗?那么第一个元素怎么会是未定义的?
谢谢。