Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
获取javaScript中Div最外层的父id_Javascript_Jquery_Html - Fatal编程技术网

获取javaScript中Div最外层的父id

获取javaScript中Div最外层的父id,javascript,jquery,html,Javascript,Jquery,Html,嗨,在我的例子中,我在下面的结构中使用了div <div id="Parent1"> <div> <div> <div id="mychildDiv"></div> </div> </div> </div> 我的工作场景: 我知道子div的id,从中可以知道如何获取父id。对于本示例中的Expample,希望获取idPare

嗨,在我的例子中,我在下面的结构中使用了div

<div id="Parent1">
    <div>
        <div>
            <div id="mychildDiv"></div>
        </div>
    </div>
</div>

我的工作场景:

我知道子div的id,从中可以知道如何获取父id。对于本示例中的Expample,希望获取id
Parent1
。是否可以获取最外层的父id?

您可以使用
.parents()
获取源元素的所有父id。然后可以使用
.last()
获取目标父级的id。请阅读更多关于和

试试看

您可以使用和功能:

var parentId = $('#mychildDiv').parents('div').last().prop('id');
请注意正确使用,而不是

您还需要将选择器传递给
parents()
函数,否则jQuery将返回
元素:


您可以通过一个简单的css选择器来实现这一点,它将为您提供第一个具有id属性的父对象:

$('#mychildDiv').parents('[id]:eq(0)');
最外层的父级为:

$('#mychildDiv').parents('[id]:last');

好的,从技术上讲,如果您正在寻找最外部的父项,它将始终
主体
,而寻找具有
id
属性的最近的父项是没有意义的

为什么不像这样添加一些更好的标记和自解释的标记呢

<div data-outer-parent="true">
    <div>
        <div>
            <div id="myChildDiv"></div>
        </div>
    </div>
</div>

问题很简单,可以通过css3选择器处理

以下是一行代码:

alert($('#mychildDiv').parents('[id]:last').attr('id'));

:)

阅读编辑后的答案。。。并查看正在运行的JSFIDLE演示。您忘记了
parents()
函数中的选择器。要了解.prop()和.attr()之间的差异,请检查此项
$('#myChildDiv').parents('[data-outer-parent="true"]:first')
alert($('#mychildDiv').parents('[id]:last').attr('id'));