访问unorderlist

时间:2017-02-02 21:41:53

标签: jquery html dom

我有以下嵌套无序列表的结构。我目前有儿童选择器的处理。从子选择器我想要将顶级父li的类名从静态折叠更改为静态展开。下面是示例,我可以有任意数量的嵌套子项。



<ul>
<li class="static collapsed">
	<ul class = "static">
		<li class ="static"></li> // I am looking to access the parent li from here
	</ul>
<li class="static collapsed"></li>
<li class="static collapsed"></li>
</ul>
&#13;
&#13;
&#13;

我尝试了以下选项,但这只能更改内部(子)li和ul的类,但无法访问父li。

$(本).addClass(&#39;香草&#39); $(本)。家长(&#34; UL:第一&#34)。addClass(&#39; Choclate&#39);

有关如何使用子选择器更改顶级li类名的任何想法。感谢。

3 个答案:

答案 0 :(得分:1)

只需使用closest即可访问第一个匹配的父级

$(this).closest('li')

答案 1 :(得分:0)

这样就可以了。请记住你的帖子拼错&Choclate&#39;但我假设这是故意的。

$(this).parents('.static').eq(0).addClass('choclate');

调整eq,了解您需要多少级别。在这种情况下,一级应该这样做。要上升一级,将其保持为零。两个,把它放在1,依此类推。

另一种选择是添加一个对父李唯一的类,因此它可以通过像.parents('.parentli')这样的东西来实现。

答案 2 :(得分:0)

以下解决方案适合我。 $(this).closest('。collapsed')。attr('class','static expanded');