Bir üst <div> içindeki <div> nin tüm içeriğini nasıl temizleyebilirim?


219

<div id="masterdiv">Birkaç çocuğu olan bir div var <div>.

Misal:

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

JQuery kullanarak <div>master içindeki tüm çocukların içeriğini nasıl temizleyebilirim <div>?


6
Sorunuzu yeniden etiketledim, çünkü Asp.net MVC (etiketlediğiniz gibi) ile herhangi bir şekilde veya şekilde ilişkili değil.
Robert Koritnik

Kullanan bir yanıtı kabul etmeyi düşünün .empty(). Bunu yapmanın en etkili yolu
Kolob Kanyonu

Yanıtlar:


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

Html'yi kopyalayıp üzerinde manipüle edebilir miyiz? like var tmp = $ ('<div>'). append ($ ('# masterdiv'). clone ()). remove (). html (); ve tmp #masterdiv içindeki divs almak ve içeriğini temizlemek ve dönmek
Prasad

118
.empty()Herhangi bir dize ayrıştırma işlemi olmadığından kullanmak daha iyi bir seçenek olacaktır. Doğrudan DOM nesne modelinde çalışır.
Drew Noakes

7
empty()jQuery ile oluşturulan tüm içeriği de temizler.
MikkoP

445

jQuery'nin empty()işlevi tam olarak bunu yapar:

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

efendiyi temizler div.

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

tüm çocuğu temizler div, ama efendiyi olduğu gibi bırakır.


8
api.jquery.com/empty doğru ama Quentin cevabının neden kabul edildiğini bilmiyorum :)
Nuri YILMAZ

5
Bu, orijinal soruda istenenden daha fazlasını siler - daha spesifik bir seçici kullanmalısınız .
Drew Noakes

4
Vay, 1.5 yıl sonra bunu işaret ettiğiniz için teşekkürler Drew Sabit.
Emil Ivanov

20

Kimliğe divsahip öğenin içindeki tüm öğeleri seçmek için jQuery'nin CSS seçici sözdizimini kullanın masterdiv. Ardından empty()içeriği temizlemek için arayın .

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

text('')Veya kullanıldığında html(''), DOM ile çalışırken genellikle kötü bir fikir olan bazı dize ayrıştırması gerçekleşir. Mümkün olduğunca DOM nesnelerinin dize temsillerini içermeyen DOM düzenleme yöntemlerini deneyin ve kullanın.


14

jQuery ".empty ()", ". remove ()", ". detach ()" kullanmanızı önerir

öğedeki tüm öğeleri silmeniz gerekiyorsa şu kodu kullanın:

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

tüm öğeyi silmeniz gerekiyorsa bu kodu kullanın:

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

i ve jQuery grubu .html () .attr () .text () gibi SET FUNCTION kullanılmasını önermez, bu nedir? İHTİYACINIZ OLAN HER ŞEYİ kurmak isterseniz

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


12

Eğer bu masterdiv içindeki tüm div'lerin temizlenmesi gerekiyorsa, bu.

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

aksi takdirde, #masterdiv'in tüm div çocuklarını yinelemeniz ve kimliğin childdiv ile başlayıp başlamadığını kontrol etmeniz gerekir.

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

11

Daha iyi bir yol:

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

1
Bu, sorulara göre "masterdiv" değil, "masterdiv" sınıfına sahip tüm öğeleri seçer - yalnızca bir not.
Dave


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

veya

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

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

veya

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

Bir div içindeki içeriği kaldırmak için iyi çalışır


3
Emil Ivanov'un cevabının kopyası.
Adrian Enriquez

6

Tüm alt öğeleri temizlemek için .empty () işlevini kullanabilirsiniz.

 $(document).ready(function () {
  $("#button").click(function () {
   //only the content inside of the element will be deleted
   $("#masterdiv").empty();
  });
 });

Jquery .empty (), .hide (), .remove () ve .detach () arasındaki karşılaştırmayı görmek için burayı takip edin http://www.voidtricks.com/jquery-empty-hide-remove-detach/


5

Herhangi bir hizmet veya veritabanı kullanarak kimliğe göre div öğesine veri eklerken, önce şunu deneyin:

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

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

veya

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

3

Bunun jQueryilgili bir soru olduğunu biliyorum , ama inanıyorum ki birisi buraya saf bir Javascriptçözüm bekleyebilir . Bu nedenle, bunu kullanarak yapmaya çalışıyorsanız js, innerHTMLözelliği kullanabilir ve boş bir dizeye ayarlayabilirsiniz.

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

1
bu, div'ın nasıl boşaltılacağı aranırken Google'daki en iyi sonuçtur. Teşekkür ederim!
Prid

0

yardımcı olursa onları deneyin.

$('.div_parent .div_child').empty();

$('#div_parent #div_child').empty();


neden "-1". Sadece yardım etmeye çalışıyordum?
Gaurav Kaushik
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.