【发布时间】:2022-11-28 03:29:32
【问题描述】:
我有这个简单的 javascript sn-p
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 更改为插入时,它不会退出循环,因为它不断“更新”变量标签(我在 sn-p 中添加了 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>
我不明白为什么循环不断更新带有嵌套标签的变量。
谢谢
【问题讨论】:
标签: javascript