【发布时间】:2011-09-14 17:35:40
【问题描述】:
我在让我的代码在 IE9 中运行时遇到了一些严重的问题,在 Chrome 和 Firefox 中运行良好,但我抛出了一些错误。这是我的两个功能:
function insertHTML(content){
var body=document.getElementsByTagName('body');
body[0].appendChild(createElement(content));
}
function createElement(string){
var container=document.createElement('div');
container.innerHTML=string;
var element=container.firstChild.cloneNode(true);
return element;
}
我已经为此尝试过严格的方法,但似乎都没有,我会准确解释我需要做什么......
...我需要从一个 html 字符串创建一个新元素,该字符串是从一个 ajax 调用返回的,所以我的脚本在得到它之前几乎不知道它包含什么。
我确实尝试过使用 element.innerHTML 但这并不好,因为如果我在屏幕上有一个 html 元素(表单)并且用户在其中输入数据,然后当插入另一个元素时,它将清除所有用户- 从第一个表单输入的数据。我在做 element.innerHTML+=newData;
所以基本上,我需要两件事:
1) 一种从 html 字符串创建新元素的方法。 2) 一种将元素附加到文档正文的方法。
这一切都需要跨浏览器工作,我不允许使用 jQuery,而且新元素不能包含在 div 父项中,它必须以 body 作为其父项。
非常感谢您的帮助,
理查德
【问题讨论】:
标签: javascript append element internet-explorer-9