2011-12-22 25 views
5

Bir litle sorunum var ve nasıl düzeltileceğini bilmiyorum.jQuery güncelleştirmesi html öğesi metni etkilemeden HTML alt öğeleri

Ben bir HTML hiyerarşi burada biri

<ul id="mylist"> 
    <li id="el_01"> 
     <div class="title"> 
      Title Goes Here 
      <span class="openClose"></span> 
     </div> 
    </li> 
</ul> 

Ne yapmak ister "Başlık Buraya Gelecek" değiştirmektir gibi var.

$('#el_01 title').text('New Title Goes Here'); 

Ama bu da kaldırmak:

Ne deneyin sadece güncellemek için bir yol Span öğesi etkiler olmadan "Başlık Buraya Gelecek"

<span class="openClose"></span> 

var mı?

cevap

8

Metin düğümünü doğrudan DOM öğesine erişerek ve firstChild numarasını alarak düzenleyebilirsiniz. Birkaç .title unsurlar varsa

$('#el_01 .title')[0].firstChild.data = 'New Title Goes Here'; 

, bunu bir .each() döngü içinde yapabilirsiniz.

$('#el_01 .title').each(function(i,el) { 
    el.firstChild.data = 'New Title Goes Here'; 
}); 
+1

Çok güzel! Teşekkürler ! Birkaç dakika sonra cevap olarak kontrol edeceğim. –

2

İki olası çözüm:

Ya: Wrap kendi başına bir süre içinde metin:

<div class="title"> 
    <span class="text">Title Goes Here</span> 
    <span class="openClose"></span> 
</div> 

... ve bu güncelleme:

$('#el_01 .text').text('New Title Goes Here'); 

Veya: Bir kopyasını tutun f openClose span ve metni güncelleştirdikten sonra yeniden yerleştirin:

var openClose = $('#el_01 .title .openClose'); 
$('#el_01 .title').text('New Title Goes Here').append(openClose); 
İlgili konular