2011-06-14 37 views
0

我在使用我的代碼在IE9中工作時出現了一些嚴重的問題,在Chrome瀏覽器中工作正常&但我引發了一些錯誤。這裏是我的2個功能:IE9,Javascript:創建並追加一個新元素

我試過這個severel方法和沒有似乎工作,我將解釋正是我需要做的......

...我需要從一個html字符串創建一個新的元素,該字符串是從ajax調用中發回來的,所以我的腳本幾乎不知道它包含什麼,直到它獲得它。

我嘗試過使用element.innerHTML,但這並不好,因爲如果我在屏幕上有一個html元素(表單)並且用戶在其中輸入數據,然後當插入另一個元素時,它將擦除所有用戶從第一個表單輸入的數據。我在做element.innerHTML + = newData;

所以基本上,我需要兩兩件事:

1)創建一個html字符串的新元素的一種方式。 2)將元素追加到文檔主體的方法。

這一切都需要跨瀏覽器工作,我不允許使用jQuery,而且新元素不能包含在div父項中,它必須以body作爲其父項。

非常感謝您的幫助,

理查德

回答

0

的innerHTML被讀寫,並會破壞你的DIV中任何東西。格外小心使用

function insertHTML(htmlString){ 
    var bodEle = document.getElementsByTagName('body'); 
    var divEle = createElement("div"); 
    divEle.innerHTML = htmlString; 
    bodEle.appendChild(divEle); 
} 
+0

抱歉,這不會做,確切的錯誤IE9給人是:錯誤:無法獲得屬性「cloneNode」的值:對象爲空或未定義的...所以問題與createElement函數一起使用。 – 2011-06-14 14:08:03

+0

你有一個名爲createElement()的函數......巧合的是......是JavaScript函數的名稱。嘗試更改函數的名稱,因爲這可能會產生問題 – 2011-06-14 14:13:32

+0

也...不要在getElementsById(「」)中使用單引號。使用雙引號 – 2011-06-14 14:14:32

相關問題