我有以下嵌套无序列表的结构。我目前有儿童选择器的处理。从子选择器我想要将顶级父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;
我尝试了以下选项,但这只能更改内部(子)li和ul的类,但无法访问父li。
$(本).addClass(&#39;香草&#39); $(本)。家长(&#34; UL:第一&#34)。addClass(&#39; Choclate&#39);
有关如何使用子选择器更改顶级li类名的任何想法。感谢。
答案 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');