嗨,在我的情况下,我使用了以下结构中的div。
<div id="Parent1">
<div>
<div>
<div id="mychildDiv"></div>
</div>
</div>
</div>
我的工作场景:
我知道子div的id,从中知道如何获取父id。对于此示例,想要获取标识Parent1
。是否有可能获得最外层的父ID?
答案 0 :(得分:5)
您可以使用.parents()
获取源元素的所有父级。然后,您可以使用.last()
获取目标父级的ID。请详细了解parents()和last()
尝试,
$('#mychildDiv').parents('div').last().attr('id')
答案 1 :(得分:4)
您可以使用简单的css选择器执行此操作,它会为您提供具有id属性的第一个父级:
$('#mychildDiv').parents('[id]:eq(0)');
最外面的父母将是:
$('#mychildDiv').parents('[id]:last');
答案 2 :(得分:1)
var parentId = $('#mychildDiv').parents('div').last().prop('id');
您还需要将选择器传递给parents()
函数,否则jQuery将返回<body>
元素:
答案 3 :(得分:0)
嗯,从技术上讲,如果你正在寻找“最外层的父母”,它将总是为body
,并且它没有意义查找具有id
属性的最近父级。
为什么不添加一些更好和自我解释标记。
<div data-outer-parent="true">
<div>
<div>
<div id="myChildDiv"></div>
</div>
</div>
</div>
然后你可以做
$('#myChildDiv').parents('[data-outer-parent="true"]:first')
答案 4 :(得分:0)
问题很简单,可以通过 css3 选择器
来处理这是一行代码:
alert($('#mychildDiv').parents('[id]:last').attr('id'));
:)