2010-11-18 26 views
3

sayfamda,jQuery En çok kullanılan kapsayıcı kimliği nasıl alınır?

<span id="pic1" class="container"> 
    <span class="inner"> 
     <span class="img"></span> 
     <span class="strip"></span> 
     <span class="remove_the_main_container"></span> 
    </span> 
</span> 
<span id="pic1" class="container"> 
    <span class="inner"> 
     <span class="img"></span> 
     <span class="strip"></span> 
     <span class="remove_the_main_container"></span> 
    </span> 
</span> 
<span id="pic1" class="container"> 
    <span class="inner"> 
     <span class="img"></span> 
     <span class="strip"></span> 
     <span class="remove_the_main_container"></span> 
    </span> 
</span> 
class="remove_the_main_container" class="remove_the_main_container" ile span tıkladığında span ile span (jQuery kullanarak) kaldırmaktır. Sorun şu ki - Tıklanan açıklığın (class="remove_the_main_container") içerisine yerleştirildiği en üstteki kapsayıcının kimliği nasıl alınır?

cevap

2

Sen bunu vermek seçici eşleşen ilk atası almak için jQuery's .closest() method kullanabilirsiniz.

$('.remove_the_main_container').click(function() { 
    $(this).closest('.container').remove(); 
}); 

container sınıfla diğer ataları varsa Bu şekilde, etkilenmeyecektir.

Veya bu span içeriğini kaldırmak istediğinizi kastettiyseniz, ancak içeriği .inner öğesine gidin ve jQuery's unwrap() method kullanın.

$('.remove_the_main_container').click(function() { 
    $(this).closest('.inner').unwrap(); 
}); 
+0

Harika, maqny teşekkürler! :) – Tony

+2

.closest() 1.3 ile tanıtıldı. Eğer bir nedenden dolayı 1.2.x ile sıkışmışsanız (bir stok Drupal kurulumu gibi), o zaman .parents ('some_selector') eq (0) eşdeğerdir. – mpdonadio

+0

Diyelim ki 4 tane başarım var: [1] [2] [3] [4]. 2'yi kaldırırsam, 3. ve 4. açıklıktan sola kaymayı canlandırmak isterim. Bu nasıl yapılır ? – Tony

2

, sen id almak için böyle bir şey yapabileceğini:

var id = $(".remove_the_main_container").parents(".container").attr("id"); 

Ama ihtiyacını kabı çıkarmak için id yok. Böyle bir şey yapabileceğini:

$(".remove_the_main_container").bind("click", function(eventObj) { 
    $(this).parents(".container").remove(); 
}); 
2

Bu kod remove_the_main_container hangi örneği göredir yüzden hiçbir kimlikleri ya da doğanın bir şey gerektirir.

jQuery('.remove_the_main_container').bind('click', function (e) { 
     jQuery(e.currentTarget).parents('.container').remove(); 
}); 
5

Kaldırma işlemini kaldırmak için ID'ye gerek duymamalısınız.

$('.remove_the_main_container').click(function() { 
    $(this).parents('.container').remove(); 
}); 
İlgili konular