根据使用Jquery的划分选择一个除法

时间:2011-06-13 12:15:48

标签: javascript jquery jquery-selectors

<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}}。

3 个答案:

答案 0 :(得分:5)

如果我理解正确,您希望选择divdiv的父级,其中id以“sheet1”开头。

如果这是正确的,您可以执行以下操作:

$("div[id^=sheet1]")

这将选择所有div元素,其中id以“sheet1”开头。然后,您可以使用each遍历这些元素集,并获取每个元素的parent以访问父div

拥有父div后,您可以使用showhide显示/隐藏它。

查看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] 
});