2012-04-28 2 views
0

텍스트 상자가 있습니다.자바 스크립트를 사용하여 요소 삭제

var label = document.createElement("label"); 
label.innerHTML = "*For a more secure password use letters and digits"; 
document.getElementById('picturediv').appendChild(label); 

그러나 onblur 내가 다른 함수를 호출 한 후 내가이 요소를 제거하려면 : 포커스 나는이 방법으로 새로운 요소를 생성하는 자바 스크립트 함수를 호출합니다. 제거를 시도했지만 작동하지 않습니다. 제거가 적합한 지 확실하지 않습니다.

+0

removeChild는 필요한 기능입니다. –

+0

이들은 당신이 찾고있는 드로이드가 아닙니다. –

답변

2

당신은 이런 식으로 제거 할 수 있습니다

function removeLabel() { 
    document.getElementById('picturediv').removeChild(document.getElementById('picturediv').getElementsByTagName('label')[document.getElementById('picturediv').getElementsByTagName('label').length - 1]); 
} 

편집 : 때문에 주석의

function removeLabel() { 
    var parentNode = document.getElementById('picturediv'); // The parentNode of the label element 

    var tagsWithLabel = parentNode.getElementsByTagName('label'); // All elements with tag name label 

    var length = tagsWithLabel.length; // The length of the node array 

    parentNode.removeChild(tagsWithLabel[length - 1]); // Deleting the last element with tage name label from parentNode. 
} 

편집 :

function removeLabel(id) { 
    document.getElementById(id).removeChild(document.getElementById(id).getElementsByTagName('label')[document.getElementById(id).getElementsByTagName('label').length - 1]); 
} 

것은 삭제하는 의견

기능 레이블 1 : removeLabel('picturediv'); 레이블 2 삭제 : removeLabel('picturediv2');

+0

당신은 대단하다 !!! 복사하여 붙여 넣기 만하면 효과가있었습니다! 고맙습니다!!! – anna

+1

감사의 인사 downvoter! –

+0

안녕하세요. 나는 라벨에 다른 이름을 붙이고 싶다. 레이블을 만들지 만 삭제할 수는 없습니다. 아마 내가 잘못하고있는 일을하고 있을지 모르지만 나는 whta를 알아낼 수 없다! 나는이 선을 사용하고있다. 이거 괜찮아? document.getElementById ('picturediv2'). removeChild (document.getElementById ('picturediv2'). getElementsByTagName ('label2') [document.getElementById ('picturediv2'). getElementsByTagName ('label2'). 길이 -1]); – anna

관련 문제