2013-12-20 191 views
0

所以我想寫出輸入值項內的文本,並在文本的右邊創建另一個節點。但是這個文本只是在輸入文本旁邊顯示[object HTMLParagraphElement],爲什麼它不顯示文本?找不到元素

我不知道我做錯了什麼,請幫助我!

所以顯示輸入的文本,但沒有顯示我創建的其他p元素?

下面是代碼:

var lista = document.getElementById("lista"); 

var li = document.createElement("li"); 

var del = document.createElement("p"); 
var delt = document.createTextNode("remove this"); 
del.appendChild(delt); 


var item = document.getElementById("item"); 

var text = document.createTextNode(item.value + " | " + del); 


li.appendChild(text); 
lista.appendChild(li); 
+0

也請出示的HTML代碼。 –

回答

0

改變你的代碼使用del.innerHTML。

var text = document.createTextNode(item.value + " | " + del.innerHTML); 

document.createTextNode的參數必須是字符串。而innerHTML是元素對象的html代碼。

1

你並不需要創建文本節點的文本追加。剛剛成立的innerHTML您所創建的元素:

var myPar = document.createElement('p'); 
myPar.innerHTML = "remove this"; 

li.innerHTML = myPar.outerHTML; //this would be the tag and its text <p>remove this</p> 

// other code here. 

演示Fiddle

1

問題是此時的線

var text = document.createTextNode(item.value + " | " + del); 

中,「德爾」中引用的段落元素, 你可以有「del.innerHtml」而不是'del'

0

http://jsfiddle.net/4YgXG/

HTML:

<ul id="lista"></ul> 

JS:

// EXAMPLE! 
var lista = document.getElementById("lista"); 
var item = document.getElementById("item"); 

for(var i=0;i<100;i++){ 
    var li = document.createElement("li"); 
    var del = document.createElement("p"); 
    del.innerHTML = 'Remove this'; 
    li.appendChild(del); 
    lista.appendChild(li); 
}