none
Jquery ile Divlerin içinin temizlenmesi RRS feed

  • Soru

  • Merhaba arkadaşlar,

    Sayfa ilk açıldığında foreach ile oluşturduğum divlerin içini dolduruyorum.

    <div class="row" id="myDiv">
    
                        @foreach (var item in Model.hastaneView.ListHastane)
        {
                    <div class="col-md-4 mb-sm-30" style="margin-top:10px" id="col-md">
                        <div id="bg-img" class="bg-img-box maxwidth400 border-bottom-theme-color-5px border-top-theme-color-5px border-left-theme-color-5px border-right-theme-color-5px">
                            <div class="photo" id="photo">
                                <img alt="" src="@Url.Content(item.hastaneResim)" class="img-fullwidth" id="hospital-photo">
                            </div>
                            <div class="right" id="right">
                                <h5 id="h5" class="text-black-444 text-uppercase mt-0 mb-0">@item.hastaneAd</h5>
                                <p class="mt-0">@item.tblSehir.sehirAd</p>
                            </div>
                        </div>
                    </div>
    }
    
    
                    </div>

    Daha sonra aşağıdaki gibi combobox tetiklendiğinde ajax ile div içini yeniden doldurmak istiyorum.

     success: function (result) {
                            console.log(result);
                            for (var i = 0; i < result.length; i++)
                            {
                                var img = result[i].Resim;
                                img = img.substring(1);
    
                                $("#myDiv").empty();  
    
                                $('#hospital-photo').attr('src', img);
                                $('#img-h5').html(result[i].Hastane);
                                $('#img-p').html(result[i].Sehir);
                            }
                        }

    Div içini temizlemek için bir çok fonksiyon kullandım fakat foreach ile gelen veri farklı sayılarda olduğu için kontrolü sağlayamadım. Div içini boşaltıp ajaxdan gelen veri ile yeniden doldurmak için hangi fonksiyonu kullanmalıyım?

    9 Nisan 2018 Pazartesi 09:08

Yanıtlar

  • Soruyu dikkatsiz okumuşum. Not'da yazdığım gibi aynı id ile iki div yapmamalısınız. Dolayısıyla sizin js kodunuz ve MVC den çıkarttığınız HTML kodlarınız doğru değil. JS içindeki döngü yeni divler üretip mydiv e eklemeli. Siz sanki olanı değiştirmeye çalışıyorsunuz. 



    9 Nisan 2018 Pazartesi 13:07
    Moderatör

Tüm Yanıtlar

  • Sadece en dıştaki "mydiv" isimli divi boşaltacaksınız sanırım? Sorunun başlığında ayrı ayrı temizlenecekmiş gibi anlaşılıyor eğer öyle size ona göre tekrar yanıt vereyim. Bunu jQuery ile yapmaya gerek yok aslında:

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

    NOT:

    Doküman üzerinde aynı ID ye sahip iki eleman olmaması gerekir. Bu hatalı bir HTML oluşturur. Bu sebepten sıkıntı yaşayabilirsiniz. İlgili kodları düzenlemenizi tavsiye ederim.


    www.cihanyakar.com



    9 Nisan 2018 Pazartesi 10:24
    Moderatör
  • Öncelikle geri dönüşünüz için teşekkür ederim.

    myDiv içerisindeki divleri foreach ile dolduruyorum. Sayfa ilk açıldığında 5 adet kayıt geldiğini düşünürsek 5 ayrı div doluyor. Daha sonra combobox'dan 1 kayıt geldiğini düşürsek 1 div'in içi dolması gerekiyor.

    Önce myDiv'in içerisini temizlenmeli sonra comboboxdan gelen verileri içerisine atmalıyım...

    Verdiğiniz kod bloğu myDiv'i ve içerisindeki diğer divleri de siliyor.

    9 Nisan 2018 Pazartesi 12:18
  • Soruyu dikkatsiz okumuşum. Not'da yazdığım gibi aynı id ile iki div yapmamalısınız. Dolayısıyla sizin js kodunuz ve MVC den çıkarttığınız HTML kodlarınız doğru değil. JS içindeki döngü yeni divler üretip mydiv e eklemeli. Siz sanki olanı değiştirmeye çalışıyorsunuz. 



    9 Nisan 2018 Pazartesi 13:07
    Moderatör