如何使用jQuery或javascript获取复杂结构中第三个生成的div的id?

时间:2012-08-03 10:24:49

标签: jquery html

我有一个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岁的孩子感兴趣,因此所有[16]都给了我那个孩子的身份证,这是:

上面代码示例中的

30bcef39-6ab1-69f5-81af-bbb9e870bfd4。

第二代div很遗憾没有课程或身份证,正如我所说,我无法控制它的一代。这个div的第三个孩子是我需要的人。

帮助将受到高度赞赏。

2 个答案:

答案 0 :(得分:1)

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

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

请参阅DEMO

答案 1 :(得分: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');