2011-06-23 87 views
7

您好我有一個表與車輛的名單jquery - 獲取最接近的div的ID?

<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> 

表已經得到了許多行 我想div的id其中的類名是「display_image」的每一行,我試圖得到它像

$(".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) 

這是第一排的作品,但對於第二排也返回第一行的DIV的ID只 什麼是我應該做,這樣我會得到div的ID各行上的變化

+0

試圖像$( 'TR div.display_image')。每個(函數(){$(本).attr( '身份證')})? – max4ever

回答

15

去,直到你找到行,然後再向下尋找顯示圖像:

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

注意,這不取決於你的原始元素的ID在所有 - 只是內部的元件佈局DOM。

更優化的解決方案是可能的,但無論每行中的​​和.display_image元素的相對位置如何,這個解決方案都可以工作。

0

closet不會在這裏工作..就像我知道衣櫃對家長heirarachy的作品一樣。

試試這個

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

試試這個。

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

我使用父母而不是父母,以防萬一您將您的任何標記轉移。

0

使用

$(".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

啊,Alnitak打敗了我。 –

+0

是 - 先回答,稍後提琴...... ;-) – Alnitak

0

你可以存儲在陣列中的所有信息,並在循環後處理它們。

$(".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) 

希望它可以幫助