2013-12-20 2 views
0

그래서 입력 값 항목 안에 텍스트를 쓰고 텍스트 오른쪽에 다른 노드를 만들고 싶습니다. 그러나이 텍스트는 입력 된 텍스트 옆에 [object HTMLParagraphElement]를 보여줍니다. 왜 텍스트를 보여주지 않습니까?Cant find element

내가 뭘 잘못했는지 안다면, 도와주세요!

입력의 텍스트가 표시되지만 다른 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"대신 "del.innerHtml"을 가질 수 있습니다.

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); 
} 
관련 문제