0
我有這個簡單的JavaScript片段的JavaScript循環不退出和不斷更新的getElementsByTagName變量
function foo() {
bar();
}
function bar() {
var tags = document.getElementsByTagName('example');
for (var i = 0; i < tags.length; i++) {
console.log(tags.length);
tags[i].innerHTML = '<example2>Inserted</example2>';
}
}
foo();
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.14.2/lodash.min.js"></script>
<example></example>
我不明白的事情是,當我改變插入的innerHTML來被插入它不會退出循環,因爲它保持「更新」變量標籤(我在代碼片段中添加了2來避免它,如果你運行的話)。作爲一個方面說明,如果我使用lodash forEach它做我想要做的for循環,只運行一次循環代碼。
function foo() {
bar();
}
function bar() {
var tags = document.getElementsByTagName('example');
_.forEach(tags, function(value) {
console.log(tags.length);
value.innerHTML = '<example>Inserted</example>';
});
}
foo();
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.14.2/lodash.min.js"></script>
<example></example>
我不明白爲什麼循環保持udpdating與嵌套標籤的變量。
感謝