使用以下html
<ul id="accordion">
<li>
<ul>
<li><h3>title</h3></li>
</ul>
</li>
<li>
<ul>
<li><h3>title</h3></li>
</ul>
</li>
<li>
<ul>
<li><h3>title</h3></li>
</ul>
</li>
</ul>
我将外部 ul 存储在变量中
var acc = $("#accordion")[0]
在一般情况下,我只是传递了 DOM 元素,不一定指定选择器
单击 h3 时,我想获取包含它的顶级 li 。在一般情况下,在手风琴 ul 和我要获取的元素之间,以及要获取的元素和 h3 之间可能有任何类型的标记......但我将拥有一个选择器,它可以让我到达元素从使用“>”选择器的手风琴。
例如 var items = $(">li", acc);
麻烦的是,当我从单击的 h3(单击处理程序中的“this”)开始时,很难找到特定的项目。
$(this).closest(">li", acc);
返回一个空的 jQuery(可能是一个错误?尽管在这种情况下很难定义“>”的含义,其中顶级元素是动态的)
$(this).parents(">li")
不允许设置上下文,因此可能会返回太多元素
有没有办法做我想做的事?
*编辑:html现在使问题更清晰