2015-11-09 30 views
0

後新生產線的標籤這是我努力使工作「未捕獲HierarchyRequestError:一個createTextNode

var aform = document.createElement("form"); 
     var model = document.createTextNode("xyz"); 
     var newLine = document.createElement('br'); 
     model.appendChild(newLine); 
     var status = document.createTextNode("abc"); 

     aform.appendChild(model); 
     aform.appendChild(status); 

     $("#someDiv").append(aform); 

,當我嘗試運行它不斷給我的錯誤代碼的代碼」未捕獲HierarchyRequestError:未能執行「 「節點」上的appendChild':這個節點類型不支持這種方法。「

有人可以請建議爲什麼isit不工作,我只是想創建文本節點xyz,然後abc後一個新行謝謝。

+0

您不能附加節點到文本節點。 – Pointy

+0

@Pointy,那麼如何在模型之後添加一條新線?我想模仿一個HTML表單。謝謝。 – user3044240

+0

追加第一個文本節點,附加'
',然後附加第二個文本節點。 – Pointy

回答

0
var model = document.createTextNode("xyz"); 
var newLine = document.createElement('br'); 
model.appendChild(newLine); 

你不能這樣做,因爲你的父母是文本節點,此類型的節點不能擁有的childNodes。

var model = document.createTextNode("xyz"); 

是一樣的:

var model.textContent = "xyz"; 

,我建議你使用innerHTML方法,它工作在幾十倍的速度,沒有jQuery的,例如:

document.getElementById("someDiv").innerHTML = "<form>xyz<br>abc</form>". 

或者你的代碼(固定):

var aform = document.createElement("form"); 
     var model = document.createTextNode("xyz"); 
     var newLine = document.createElement('br'); 
     var status = document.createTextNode("abc"); 

     aform.appendChild(model); 
     aform.appendChild(newLine); 
     aform.appendChild(status); 

     $("#someDiv").append(aform); 
1

你可以用jQuery完成整件事,因爲你使用也無妨:

$("#someDiv").append("<form>xyz<br>abc</form>"); 
+0

這是一個很好的方法,但我認爲如果我要用提交,操作等所有常用選項創建一個長表單,這會非常麻煩。對我來說,這並不是最好的解決方案,但無論如何要感謝。 – user3044240

+1

@ user3044240你應該在你的問題中包含你所有的條件,以便人們可以提供有用的答案。但無論如何,你仍然在使用jQuery,所以你不妨使用它。如果你正在構建一個大型表單,使用模板系統會更好。 – Pointy