我之所以推迟在这里发布,是因为我还没有足够的技能回馈社区,但是这一点让我很沮丧。
我有一个递归JavaScript函数,该函数将计数器添加到节点树中所有id和name元素的末尾。该功能适用于FF,Chrome,Safari和IE9,但不适用于IE8。
function counterAppend(nodes,counter)
{
var newField = nodes.childNodes;
for (var i=0;i<newField.length;i++)
{
var theName = newField[i].name;
if (theName)
{
newField[i].name = theName + counter;
}
var theId = newField[i].id;
if (theId)
{
newField[i].id = theId + counter;
}
//recursive part
if(newField[i].childNodes.length>0)
{
newField[i] = counterAppend(newField[i],counter);
}
}
return nodes;
}
我在网上得到错误:
newField [i] = counterAppend(newField [i],counter);
在调试中,它说:
打破JS运行时错误-对象不支持此属性或方法
IE8和其他浏览器之间有什么区别,我如何修改它以解决错误?
最佳答案
为什么要在newField[i]
上分配函数的返回值?我不知道你期望这样做。如果代码只是修改ID /名称,则不需要返回值。我应该以为这是令人困惑的IE,我不确定为什么它不会使其他浏览器感到困惑...
关于javascript - 递归JavaScript函数来解决IE8中的DOM中断,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13885649/