我有以下嵌套的无序列表结构。我现在得到了子选择器的句柄。在子选择器中,我想要将top parent 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>
我尝试了以下选项,但只能更改内部(子) li和ul的类,但不能访问父li。
$(.addClass).addClass(‘Vanilla’);this
关于如何使用子选择器更改top li的类名有什么想法吗?谢谢。
发布于 2017-02-02 21:45:06
只需使用closest访问第一个匹配的父级
$(this).closest('li')
发布于 2017-02-02 21:53:46
这个可以做到这一点。记住你的帖子拼写错了“Choclate”,但我假设这是故意的。
$(this).parents('.static').eq(0).addClass('choclate');
调整eq,以确定你需要达到的级别。在这种情况下,再往上一级就可以了。若要上一级,请将其保留为零。对于二,将其设置为1,依此类推。
另一种选择是为父li添加一个独一无二的类,这样它就可以通过像.parents('.parentli')
这样的东西简单地访问这些类。
发布于 2017-02-02 22:54:20
下面的解决方案对我很有效。$(.closest)类(‘.collapsed’).attr(‘类’,‘静态扩展’);
https://stackoverflow.com/questions/42012797
复制相似问题