<div class = ui-dialog-abc ui-dialog-xyz>
<div id = "sheet1abc">
</div>
</div>
<div class = ui-dialog-abc ui-dialog-xyz>
<div id = "sheet1xyz">
</div>
</div>
<div class = ui-dialog-abc ui-dialog-xyz>
<div id ="sheet2foo">
</div>
</div>
<div class = ui-dialog-abc ui-dialog-xyz>
</div>
我可以根据它包含的div选择div吗?我想让div
包含div
包含id
可见或隐藏的sheet1
{{1}}。
答案 0 :(得分:5)
如果我理解正确,您希望选择div
为div
的父级,其中id
以“sheet1”开头。
如果这是正确的,您可以执行以下操作:
$("div[id^=sheet1]")
这将选择所有div
元素,其中id
以“sheet1”开头。然后,您可以使用each
遍历这些元素集,并获取每个元素的parent
以访问父div
。
拥有父div
后,您可以使用show
或hide
显示/隐藏它。
查看example fiddle,其中我提醒每个匹配的父id
的{{1}}。
<强>更新强>
如果您要查找的孩子div
不是祖先div
的直接孩子,您可以使用div
攀登DOM树以找到第一个祖先{{1}您parent().closest('div')
的{{1}}。
问题是要求“div
包含div
...”,因此此方法将获得第一个祖先id
。请参阅this fiddle,其中子div
包含在表格中。
答案 1 :(得分:1)
$('div').has('div[id="sheet1abc"]').text();
$('div').has('div[id="sheet1xyz"]').text();
答案 2 :(得分:0)
抓住其ids包含'sheet1'的所有div,然后抓住他们最近的包含div:
$('div[id*=sheet1]').map(function() {
return $(this).parents('div:first')[0]
});