【问题标题】:appendChild in old IE browsers旧 IE 浏览器中的 appendChild
【发布时间】:2009-10-25 00:32:49
【问题描述】:

我正在尝试在我的 javascript 代码中创建一个新元素并将其附加到我的一个元素中。但似乎旧的 IE 浏览器不支持此功能,我的代码在我使用 appendChild 功能的那一行中断。

var child = document.createElement('span');
child.innerHTML = "Hello World!"; // Crashes here
parent.appendChild(child); // And here

我可以为 IE 使用任何替代方案吗?

谢谢。

P.S 代码在现代浏览器中运行良好。

更新: 以下代码解决了我的问题的最后一部分,我可以将空子附加到父级:

var child = document.createElement('span');
if (parent.insertAdjacentElement){
   parent.insertAdjacentElement('beforeEnd', child);
}
else if (parent.appendChild) {
   parent.appendChild(child);
}

但我仍然需要在子元素中放入一些数据。 createTextNodeinnerHTMLsetAttributes 不工作。

【问题讨论】:

  • 定义“旧 IE”的含义实际上可能会有所帮助。 IE5? 4? 3?

标签: javascript internet-explorer appendchild


【解决方案1】:

这可能无关,但请查看 this link 了解其他人如何解决此问题

编辑:this link也是

【讨论】:

  • thanx,insertAdjacentElement 解决了第二个问题,但我仍然无法修改新创建的元素。 innerHTML 和 setAttribute 函数都不起作用。
  • innerHTML 在哪个版本的 IE 上失败?因为AFAIK,IE5.5在
【解决方案2】:

在我看来,它在第二行崩溃了。 innerHTML 是用小写的 i 编写的,而不是大写的。它甚至可能是您的第一行,因为有一个错字,但我认为这只是问题所在。

【讨论】:

  • 对不起,这只是问题中的一个错字。
【解决方案3】:

这能解决问题吗?

var child = document.createElement('span');
child.appendChild(document.createTextNode("Hello World!"));
parent.appendChild(child);

【讨论】:

  • 不,它不喜欢 createTextNode() 函数。
【解决方案4】:

parent.innerHTML 似乎工作正常。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多