用jQuery找到父div

时间:2011-06-01 09:44:08

标签: jquery

如何在表格中找到div的父ID? 我有以下结构:

<div id="parent">
<table>
<tbody>
  <tr>                                             
   <td>                                     
     <div id="child" >      
 </div>
   </td>                    
 </tr>        
</tbody>
</table>
</div> 


<script type="text/javascript">  
$(document).ready(function() 
{               
   var parent = $("#child").parent().attr("id");
   alert(parent);
});   

当div在里面时&lt; TD&GT;父母是空的。当我把div移到外面时&lt; TD&GT;它工作正常。你能帮我找到里面的div吗?

谢谢

3 个答案:

答案 0 :(得分:10)

您可以使用.closest(),它找到与指定选择器匹配的最近父级。在你的情况下:

 var parentId = $('#child').parent().closest('div').attr('id');

文档:http://api.jquery.com/closest/

答案 1 :(得分:5)

如果您的意思是想要查找包含您的表格的DIV的ID,那么您可以使用closest()

var parent = $("#child").parent().closest('div').attr("id");

Fiddle

编辑

阅读文档后,closest()优于parents(),因为它不会传播到根节点。感谢Andy E的抬头

答案 2 :(得分:0)

$(document).ready(function() 
{               
   var parent = $("#child").parent().attr("id");
   alert(parent);
});

您正在尝试读取元素“id”的属性,并且没有名称为“id”的属性。

以下代码可以使用:

<table>
<tbody>
  <tr>                                             
   <td id="divParent">                                     
     <div id="child" ></div>
   </td>                    
 </tr>        
</tbody>
</table>

<script type="text/javascript">
$(document).ready(function() 
{               
   var parent = $("#child").parents('div:first').attr("id");
   alert(parent);
});
</script>

这将为您提供“divParent”的警告信息。