2010-04-27 4 views
1

어떻게이 <p> 태그를 자바 스크립트의 모든 콘텐츠와 함께 삭제할 수 있습니까? Javascript에서 <p class = "classname">을 (를) 삭제 하시겠습니까?

는 사람이 내가 그것을 제거 할 수있는 방법을 알고 않습니다 내가/대체 자바 스크립트를 제거해야 지금이 html 코드

<p class="classname"> 
    <input name="commit" value="Get Value" type="submit"> <span>or Cancel</span> 
</p> 

이 있다고?

답변

2

을 원하는 경우에 당신이하지 않는이 때문에 인터넷 익스플로러의 고통스러운 수 있습니다 자바 스크립트 일반에 그것을 할 수있는 경우 getElementsByClassName() 지원 (최신 버전일까요?)

var elems = document.getElementsByTagName('p'); 
var elemsLenght = elems.lenght; 
for (var i = 0; i < elemsLenght; ++i) { 
{ 
    if (elems[i].className == 'classname') 
    { 
     elems[i].innerHTML = ''; 
    } 
} 

하지만, 등 jQuery를, 프로토 타입, 도장, 같은 라이브러리/프레임 워크 ..

+0

그것은 안전하지 않습니다 : http://www.jslint.com/lint.html#forin – Quentin

+1

class 속성은 공백으로 구분 된 클래스 목록을 사용하므로 일반 getElementsByClassName 구현에는'=='이 충분하지 않습니다 (비록 이 특별한 경우에는 충분할 것입니다.) – Quentin

+0

당신은 두 가지 주석 모두에 대해 옳았습니다. 목적은 자바 스크립트에서 어떻게 할 것인지를 설명하는 것이지, 상자에서 코드를 꺼내는 것이 아닙니다. getElementsByClassName을 구현하는 가장 좋은 방법은 기본 자바 스크립트 함수로 사용하도록 프로토 타입을 작성하고 클래스 이름을 여러 클래스로 검사하는 것입니다. –

6

마크 업을 변경하지 않으려는 경우 : 가장 쉬운 방법은 라이브러리를 사용하는 것입니다. 예 : jQuery를 함께 : 요소에 대한 참조가 까다로운 부분입니다 얻기

el.parentNode.removeChild(el); 

:

jQuery('.classname').remove(); 

그렇지 않으면, 당신은 다음 요소에 대한 참조를 얻을 필요가있다. 일부 브라우저는 getElementsByClassName을 구현하지만 일부는 독자적으로 작성하거나 나머지는 제 3 자 구현을 사용해야합니다.

if (!document.getElementsByClassName) { 
    document.getElementsByClassName = function (className) { 
     /* ... */ 
    } 
} 

당신이 다음 마크 업을 변경할 요소에게 ID를 부여하고 그에 대한 참조를 가져 document.getElementById를를 사용하고자하는 경우.

+0

** jQuery로 가장 쉬운 또는 ** 여러 가지 다른 자바 스크립트 라이브러리의 사용할 수있는 경우 : HTTP를 : // prototypejs를 .org, http://code.google.com/closure/library 등 - http://en.wikipedia.org/wiki/List_of_JavaScript_libraries –

+0

공정한 점, 처음에는 질문을 잘못 읽고 그것은 '자바 스크립트'가 아니라 'jQuery'라고 생각했다. 이 작업은 급하게 편집해야했으며 'jQuery 사용'을 충분히 낮추지 않았습니다. jQuery는 많은 StackOverflow 사용자가 내 눈에 영향을 준 것 같다. – Quentin

1

이 시도 : jQuery로

<p id="someid"> 
    <input name="commit" value="Get Value" type="submit"> <span>or Cancel</span> 
</p> 

function removeElement(id) { 
    var d = document.getElementById('myDiv'); 
    var olddiv = document.getElementById(id); 
    d.removeChild(olddiv); 
} 


removeElement('someid'); 

당신이

$('p.classname').remove(); 
+0

하지만 그 요소에 대한 ID는 갖고 있지 않습니다. – streetparade

+0

@streetparade :'id'를 사용하지 않고 jquery를 사용하고 싶지 않으면 @David Dorward에서 제안한대로해야합니다. – Sarfraz

관련 문제