我写了个小DEMO熟悉for of循环遍历DOM,却发现一些问题并不知道怎么解决。代码如下面。
js代码如下:
var DOM1 = document.getElementsByTagName("li");
console.log(DOM1);
for (let d of DOM1) {
console.log("执行");
console.log(d);
}
HTML中相关代码如下:
<body>
<ul>
<li>1</li>
<li>2</li>
<li>3</li>
</ul>
</body>
控制台输出如下:图片描述
这说明li都获取到了啊,但就是for循环中的不执行,请指点为什么。
(浏览器是支持ES6的)
首先在这里感谢各位的热心回答,我看了之后自己又思考了一下,最后发现了问题所在。请允许我进行简单的描述:
我之前问题中的js代码是写在头部<head></head>标签内的,并且没有使用window.onload语句,所以DOM没加载完他就执行了,之后我加上这个,或者把他放在<body></body>的最下面,就可以正常输出了。
然后对于这个问题,我又有了个新的疑问,因为由解决办法看,我们似乎可以理解为是因为文档未加载完就执行了js代码,所以li并没有被获取,然而我的DEMO中输出结果的截图中也看到了,这个DOM1输出表明是获取到了3个li的。所以我有些无法理解。
翻过高山走不出你
相关分类