Javascript TypeError:…[i]未定义
脚本的这一部分有什么问题:Javascript TypeError:…[i]未定义,javascript,jquery,Javascript,Jquery,脚本的这一部分有什么问题: function refreshLabels() { // loop through all document elements var allnodes = document.body.getElementsByTagName("*"); for (var i=0, max=allnodes.length; i < max; i++) {
function refreshLabels() {
// loop through all document elements
var allnodes = document.body.getElementsByTagName("*");
for (var i=0, max=allnodes.length; i < max; i++) {
// get id current elements
var idname = allnodes[i].id;
// if id exists, set get id current elements
if (idname !== '') {
allnodes[i].textContent = multilang.get(idname);
}
}
}
萤火虫总是说:
TypeError:allnodes[i]未定义
我找不到任何解决方案来解决这个问题-这部分错了吗
"for (var i=0, max=allnodes.length; i < max; i++)"
顺便说一句,Chrome也这么说-所以这不仅仅是FF问题。更改文本内容的问题在于,您实际上是在改变allnodes数组的节点子节点,从而也改变allnodes数组的长度,减小其大小,以便循环继续运行到新缩短的数组的末尾 请参阅MDN web文档了解正在执行的操作: 函数刷新标签{ //循环遍历所有文档元素 var allnodes=document.body.getElementsByTagName*; console.logallnodes.length 对于变量i=0,max=allnodes.length;i