2011-06-23 20 views
7

Merhaba ben sınıf adı bunu almaya çalıştı her satır için "display_image" dir div id almak istiyorumjquery-En yakın div kimliğini aldınız mı?

<table> 
<tr class="${(i % 2) == 0 ? 'odd' : 'even'}" id ="rows"> 
    <td> 
     <div class="check_box_div"> 
     <div class="check_box_list"> 
     <g:checkBox id = "isActive_${i}" class="isActive" name="isActive" value="${vehicleInstance?.isActive}" /> 
      <input type="hidden" value="${vehicleInstance?.id}" class="vehicleId" name="vehicleId" id="isActive_${i}_" /> 
     </div> 
     <div class="display_image" id ="display_image_${i}"></div> 
     </div>  
    </td> 

    </tr> 

sayıda tablo var aracın listesini içeren bir tablo var gibi

$(".isActive").click(function() { 
    var checkBox_id = $(this).attr("id"); 
    var checkbox = $('#'+checkBox_id); 
    var div_id =$('#'+checkBox_id).closest("div").find(".display_image").attr("id"); // always returns div_id =display_image_0(div id of first row) 

Bu ilk satır için çalışır ama ikinci satır için de ilk sıranın div id döndürür sadece i her satırda div id alalım diye yapmalıdır değişim ne

- senin elemanların sadece düzen içinde bu orijinal öğenin kimliği hiç bağlı olmadığını

$(".isActive").click(function() { 
    var div_id = $(this).closest('tr').find('.display_image').attr(id); 
    // ... 
}); 

Not:

+0

$ ('tr div.display_image') gibi bir şey denedik yardımcı olur. Her (function() {$ (this) .attr ('id')})? – max4ever

cevap

15

ekran görüntüsünü bulmak için aşağı tekrar o zaman satır bulana kadar yukarı gidin ve DOM.

Daha uygun çözümler mümkündür, ancak bu, her satırdaki .isActive ve .display_image öğelerinin göreceli konumlarından bağımsız olarak çalışır.

0

closet burada çalışmayacaktır. Dolap bildiğim kadarıyla ebeveyn heralizisine doğru çalışır. bu bir

var div_id =$('#'+checkBox_id).parents(".check_box_div").find(".display_image").attr("id"); 
0

bu deneyin

deneyin.
$(".isActive").click(function() { 
var div_id = $(this).parents(".check_box_list").next(".display_image").attr("id"); 
} 

Sadece etrafta İşaretlemenize herhangi vardiya durumda anne ziyade ebeveyni kullandı.

0

Kullanım

$(".isActive").click(function() { 
    var $row = $(this).closest("tr"); 
    var $div_id = $row.find("div.display_image").attr("id"); 
}); 

jsFiddle: http://jsfiddle.net/5TV9A/8/

+0

Ah, Alnitak beni dövdü. –

+0

yup - önce cevap ver, daha sonra fiddle ... ;-) – Alnitak

0

Bir Array tüm bilgileri saklamak ve döngü sonra bunları işleyebilir.

$(".isActive").click(function() { 
    var checkBox_id = $(this).attr("id"); 
    var checkbox = $('#'+checkBox_id); 
    var div_array = new Array(); 
    $('.display_image').each(function(index) { 
       var div_array[index] = //whatever you want; 
     }); 
    // Now in div_array you have stored all the information you want (the id as well) 

o

İlgili konular