jQuery父元素

时间:2011-10-09 14:33:35

标签: jquery parent

我有以下标记:

<div class="display-none" id="team_[NEXT-NUMBER-BY-PHP]">
<div id="ajax-json-loading"></div><div id="ajax-json-response"></div>
<table cellspacing="5">
 <tr>
  <td valign="top" style="width: 100px;">
   <b>SOMETHING</b>
  </td>
  <td id="team-leader-area">
   <div id="team-leader-id"><a href="javascript:void(0)"><?php echo $value['leader']; ?></a></div>
   <div id="team-leader-modify"><a href="javascript:void(0)" onClick="changeAdmin(this.offsetParent)">Modify</a></div>
  </td>
 </tr>
 <tr>
  <td valign="top" style="width: 100px;">
   <b>SOMETHING ELSE:</b>
  </td>
  <td>
   <?php echo $value['p_address']; ?>
  </td>
 </tr>
</table>
</div>
<div class="display-none" id="team_[NEXT-NUMBER-BY-PHP]">
...

重复一遍。如您所见,我在#team-leader-modify div中有JS函数,我必须更改#team-leader-id的上下文。

是否可以使用“父”控件?如果有,怎么样?如果不是,最简单的方法是什么?

提前致谢!

3 个答案:

答案 0 :(得分:0)

也许试试:

$('#team-leader-modify').closest('td').find('div#team-leader-id')

但我不知道这是否过于具体。你可以这样做:

$('#team-leader-modify').closest('td').find('div:first-child')

或许更灵活一点。

答案 1 :(得分:0)

首先,请注意您对答案的评论,因为您的代码存在严重缺陷。

无论如何,如果'changeAdmin'在'div#team-leader-modify'中触发,你可以使用以下方式访问'#team-leader-id':

 $('#team-leader-modify').parent('td').find('#team-leader-id')
祝你好运!

答案 2 :(得分:0)

鉴于[NEXT-NUMBER-BY-PHP] = 100为“当前”迭代:

<div class="display-none team_data" id="team_100">
 <div class="ajax-json-loading"></div>
 <div class="ajax-json-response"></div>
 <table cellspacing="5">
  <tr>
   <td valign="top" style="width: 100px;">
    <b>SOMETHING</b>
   </td>
   <td class="team-leader-area">
    <div class="team-leader-id">
     <a><?php echo $value['leader']; ?></a>
    </div>
    <div class="team-leader-modify">
     <a>Modify</a>
    </div>
   </td>
  </tr>
  <tr>
   <td valign="top" style="width: 100px;">
    <b>SOMETHING ELSE:</b>
   </td>
   <td>
    <?php echo $value['p_address']; ?>
   </td>
  </tr>
 </table>
</div>

然后你可以使用jQuery click handler's:

$(document).ready(function(){
    $('.team-leader-modify a').click(function(){
        changeAdmin($(this).parent());
    });
});

或者,如果您需要当前团队的ID,您可以:

$(document).ready(function(){
    $('.team-leader-modify a').click(function(){
        changeAdmin($(this).parents('.team_data')[0].id);
    });
});

这将在包含div中为您提供id