부모 <div> 내의 모든 <div> 내용을 지우는 방법은 무엇입니까?


219

<div id="masterdiv">여러 자녀 가있는 div 가 있습니다 <div>.

예:

<div id="masterdiv">
  <div id="childdiv1" />
  <div id="childdiv2" />
  <div id="childdiv3" />
</div>

jQuery를 사용 <div>하여 마스터 내의 모든 자식 내용을 지우는 방법은 <div>무엇입니까?


6
귀하의 질문이 Asp.net MVC와 관련이 없기 때문에 (태그를 붙인 것처럼) 귀하의 질문에 태그를 달았습니다.
Robert Koritnik 2009

을 사용하는 답변을 수락하십시오 .empty(). 가장 성능이 좋은 방법입니다
Kolob Canyon

답변:


270
jQuery('#masterdiv div').html('');

HTML을 복제하고 조작 할 수 있습니까? var tmp = $ ( '<div>'). append ($ ( '# masterdiv'). clone ()). remove (). html ()과 같습니다. tmp의 #masterdiv 안에있는 div를 가져 와서 내용을 지우고 반환
Prasad

118
.empty()문자열 구문 분석이 없으므로 사용 하는 것이 더 좋습니다. DOM 객체 모델에서 직접 작동합니다.
Drew Noakes

7
empty()또한 jQuery로 생성 된 모든 컨텐츠를 지 웁니다.
MikkoP

445

jQuery의 empty()기능은 다음을 수행합니다.

$('#masterdiv').empty();

마스터를 지 웁니다 div.

$('#masterdiv div').empty();

모든 자식을 지우지 div만 마스터는 그대로 둡니다.


8
api.jquery.com/empty 그것은 사실이다하지만 쿠엔틴의 대답은 :) 받아 내가 왜 몰라
누리 YILMAZ

5
이것은 원래 질문에서 요구 한 것 이상을 명확하게 합니다-보다 구체적인 선택 도구를 사용해야합니다 .
Drew Noakes

4
와우, 1.5 년 후에 이것을 지적 해 준 Drew에게 감사합니다 :) 고정.
Emil Ivanov

20

jQuery의 CSS 선택기 구문을 사용 div하여 id가있는 요소 내부의 모든 요소 를 선택하십시오 masterdiv. 그런 다음 전화 empty()를 걸어 내용을 지우십시오.

$('#masterdiv div').empty();

text('')또는 html('')을 사용 하면 일부 문자열 구문 분석이 발생하며 이는 일반적으로 DOM 작업시 나쁜 생각입니다. 가능한 경우 DOM 객체의 문자열 표현을 포함하지 않는 DOM 조작 방법을 사용하십시오.


14

jQuery는 ".empty ()", ". remove ()", ". detach ()"사용을 권장합니다.

요소의 모든 요소를 ​​삭제 해야하는 경우이 코드를 사용하십시오.

$('#target_id').empty();

모든 요소를 ​​삭제해야하는 경우 다음 코드를 사용하십시오.

$('#target_id').remove();

i 및 jQuery 그룹 은 .html () .attr () .text ()과 같은 SET FUNCTION 사용을 권장하지 않습니다 . 필요한 모든 것을 설정하고 싶다면

심판 : https://learn.jquery.com/using-jquery-core/manipulating-elements/


12

해당 masterdiv 내부의 모든 div를 지워야하는 경우 해당 div입니다.

$('#masterdiv div').html('');

그렇지 않으면 #masterdiv의 모든 div 하위를 반복하고 id가 childdiv로 시작하는지 확인해야합니다.

$('#masterdiv div').each(
    function(element){
        if(element.attr('id').substr(0, 8) == "childdiv")
        {
            element.html('');
        }
    }
 );

11

더 좋은 방법은 다음과 같습니다.

 $( ".masterdiv" ).empty();

1
질문에 따라 ID "masterdiv"가 아니라 "masterdiv"클래스가있는 모든 요소를 ​​선택합니다.
Dave


6
$("#masterdiv > *").text("")

또는

$("#masterdiv").children().text("")

6
$('#div_id').empty();

또는

$('.div_class').empty();

div 내부의 내용을 제거하기 위해 잘 작동합니다.


3
Emil Ivanov의 답변이 중복되었습니다.
Adrian Enriquez


5

서비스 또는 데이터베이스를 사용하여 id로 div에 데이터를 추가하는 경우 먼저 다음과 같이 비워보십시오.

var json = jsonParse(data.d);
$('#divname').empty();

4
$("#masterdiv div[id^='childdiv']").each(function(el){$(el).empty();});

또는

$("#masterdiv").find("div[id^='childdiv']").each(function(el){$(el).empty();});

3

나는 이것이 jQuery관련 질문 이라는 것을 알고 있지만 누군가가 순수한 Javascript해결책을 기대할 수 있다고 생각 합니다. 따라서를 사용 하여이 작업을 수행하려는 경우 속성을 js사용하여 innerHTML빈 문자열로 설정할 수 있습니다 .

document.getElementById('masterdiv').innerHTML = '';

1
이것은 div를 비우는 방법을 검색 할 때 Google의 최고 결과였습니다. 감사합니다!
Prid

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.