0

我有一个 div 结构,由 jQuery 函数生成,我几乎无法控制哪一代。该结构有19个第一代孩子,一个第二代孩子和3个第三代孩子。我对第四代孩子不感兴趣。这是代码:

<div id="columntableordersGrid">
<div></div>
<div></div>
....
<div></div>
<div id="30bcef39-6ab1-69f5-81af-bbb9e870bfd4">
    <div>
        <div id="pdfs"><img src="/kabinet/images/32x32/pdf.png"></div>
        <div class="container">
            <div class="filtericon">
                <div class="filterbutton"></div>
            </div>
            <div class="sortasc">
                <div class="sortascbutton"></div>
            </div>
            <div class="sortdesc" >
                <div class="sortdescbutton"></div>
            </div>
        </div>
        <div id="bb29c057-acd8-f1eb-aa13-69d8498ae47e">
            <div class="column-menubutton"></div>
        </div>
    </div>
</div>
</div>

我需要获取此结构的第三代孩子之一的 id (bb29c057-acd8-f1eb-aa13-69d8498ae47e)。每次脚本运行时,它都会生成新的 ID。

我可以使用以下方法获取第一代孩子的 ID:

    var all = $("#columntableordersGrid > div").map(function() {
        return this.id;
    }).get();

我对 17 岁的孩子感兴趣,因此 all[16] 给了我那个孩子的 id,即:

30bcef39-6ab1-69f5-81af-bbb9e870bfd4 在上面的代码示例中。

不幸的是,第二代 div 没有 class 或 id,正如我所说,我无法控制它的生成。这个 div 的第三个孩子是我需要的 id。

帮助将不胜感激。

4

2 回答 2

1

如果您需要的 id 始终是具有类“.column-menubutton”的元素的父级,则下面的内容应该可以使用您现有的代码。

var parentDivId = all[16];
var menuParentDivId = $('#' + parentDivId + " .column-menubutton").parent().attr('id');

演示

于 2012-08-03T10:41:44.403 回答
0

您可以使用像这样的简单选择器来抓取第 17 个 div(索引从 0 开始,因此 16 将抓取第 17 个 div),然后获取在该 div 中找到的第一个 div 的 ID。

$('#columntableordersGrid div:eq(16) div:first').attr('id');

如果您感兴趣的 div 始终是最后一个 div(如上例所示),您可以通过以下方式稍微简化它:

$('#columntableordersGrid div:last div:first').attr('id');
于 2012-08-03T10:29:18.073 回答