2011-06-23 13 views
7

こんにちは私は、クラス名は、私はそれを得ることを試みた行ごとに、「display_image」であるdiv要素のIDを取得したい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> 

テーブルに多数の行 を持っている車両のリストを持つテーブルがあります以下のような

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

これは、最初の行のための作品ですが、2番目の行のためにも、それは最初の行のdiv要素のIDを返すだけ 私は、各行にdiv要素のIDを取得するように作るべき変更が何であるかを

- あなたの単なる要素のレイアウト内のこれはあなたの元の要素のIDに全く依存しないこと

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

注:

+0

を役に立てば幸い各(関数(){$(この).ATTR( 'ID')})。$( 'trのdiv.display_image')のようなものを試してみましたか? – max4ever

答えて

15

表示画像を見つけるために下に再びあなたが行を見つけるまで移動し、 DOM。

さらに最適な解決策は可能ですが、これは各行内の​​と.display_image要素の相対位置に関係なく機能します。

0

closet私はクローゼットが親のheirarachyに向かって動作することを知っているからです。

この1

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

ああ、アルニタクは私にそれを打つ。 –

+0

yup - 最初に答え、後でフィドル... ;-) – 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) 

は、それが

関連する問題