es6d的for of循环遍历dom但循环不执行

我写了个小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的。所以我有些无法理解。


郎朗坤
浏览 418回答 1
1回答

翻过高山走不出你

刚试了一下可以,要是浏览器不支持这种写法是会报错的。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript