+-
JS部分代码:
window.onload = function () {
k = document.getElementsByTagName("li");
for (var i = 0; i < 10; i++) {
document.write(k[i].innerHTML);
/*
问题:
1、再次执行此代码document.write(k[i].innerHTML),找不到对象
2、执行完一次for语句后,k变为空数组。
*/
}
}
HTML部分代码:
<ul id="a">
<li>1</li>
<li>2</li>
<li>3</li>
<li>4</li>
<li>5</li>
</ul>
<ol>
<li>2</li>
<li>2</li>
<li>3</li>
<li>4</li>
<li>5</li>
</ol>
请大佬解释下这是为什么呢?
受document.write的影响,会清空文档内容。即使用了document.write会导致文档中已存在的节点都被清空掉。
其次: document.getElementsByTagName获取的集合是动态的,即当节点被清空后,k的值也是跟随着变化的。
window.onload = function () {
k = document.getElementsByTagName("li");
for (var i = 0; i < 10; i++) {
console.log('k', k)
document.write(k[i].innerHTML);
}
}
参考:
https://developer.mozilla.org...
https://developer.mozilla.org...
https://developer.mozilla.org...