问题: -
<div>
<div>
<div>
<select id="s1">
.................
</div>
<div>
</div>
我想从元素s1开始切换第一个div。我可以这样做: -
$('#s1').parent().parent().parent().toggle(false);
但是有什么方法可以直接用一些快捷方式到达父div。有什么办法可以避免使用parent()方法3次吗?
请建议。
答案 0 :(得分:2)
尝试以下方法:
$('#s1').parents('div').last();
这将为您提供select元素的最顶级父div。 另外,还有parentsUntil方法,可以这样使用:
$('#s1').parentsUntil(':not(div)');
答案 1 :(得分:1)
给父母一些类名或id,并使用:
$('#s1').parent('.parent').toggle(false);
答案 2 :(得分:1)
$('#s1').parents('div').last().toggle();
答案 3 :(得分:1)
最好的方法是设置“id”或“class”
HTML
<div class="thisdiv">
<div>
<div>
<select id="s1">
.................
</div>
<div>
</div>
的jQuery
$('#s1').parents('.thisdiv').toggle(false);
答案 4 :(得分:1)
如果您可以更改HTML,则可以执行以下操作 -
HTML
<div class="top">
<div>
<div>
<input type="button" value="c" id="s1"/>
.................
</div>
<div>
</div>
jQuery -
$('#s1').closest('.top').toggle(false);
答案 5 :(得分:0)
您有.parents()
(http://api.jquery.com/parents/)可用,它会选择选择器中元素的文档根目录(不包括)之前的所有祖先
但是,再一次,没有任何东西可以过滤它们......我不知道它是否会有所帮助