jquery - 获取最近div的id?

时间:2011-06-23 10:24:01

标签: javascript jquery

嗨,我有一张包含车辆清单的表

 <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

5 个答案:

答案 0 :(得分:16)

向上直到找到该行,然后再向下找到显示图像:

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

请注意,这完全不依赖于原始元素的ID - 只是DOM中元素的布局。

可以使用更多最佳解决方案,但无论每行中.isActive.display_image元素的相对位置如何,此解决方案都可以使用。

答案 1 :(得分:1)

试试这个。

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

我使用父母而不是父母,以防你转移任何标记。

答案 2 :(得分:0)

closet在这里不起作用..因为我知道壁橱对父母heirarachy有效。

尝试这个

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

答案 3 :(得分: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/

答案 4 :(得分: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)

希望有所帮助