我有一个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的第三个孩子是我需要的人。
帮助将受到高度赞赏。
答案 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');