Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/solr/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在ul集合中查找具有特定li项的ul,然后向其添加类_Javascript_Jquery_Html_Css - Fatal编程技术网

Javascript 在ul集合中查找具有特定li项的ul,然后向其添加类

Javascript 在ul集合中查找具有特定li项的ul,然后向其添加类,javascript,jquery,html,css,Javascript,Jquery,Html,Css,我有一系列无序的清单。我想遍历这个列表,然后找到一个特定的li项,然后向ul添加一个包含该li的类 我希望我对你们够清楚了。让我向您展示我的代码,以便更好地理解 这是我为帮助你理解我的问题而制作的小提琴 这是我试图针对我需要的ul的目标,但它不起作用 if ($('ul.sub-tab').find('ul.sub-tab > li.super-active')) { $('ul.sub-tab').find('li.super-active').addClass('sup

我有一系列无序的清单。我想遍历这个列表,然后找到一个特定的li项,然后向ul添加一个包含该li的类

我希望我对你们够清楚了。让我向您展示我的代码,以便更好地理解

这是我为帮助你理解我的问题而制作的小提琴

这是我试图针对我需要的ul的目标,但它不起作用

if ($('ul.sub-tab').find('ul.sub-tab > li.super-active')) {
        $('ul.sub-tab').find('li.super-active').addClass('super-active');
    }
我希望与id对应的列表中的那个始终是打开的。 有什么想法吗,伙计们??谢谢

使用jQuery的选择器:

选择至少包含一个与元素匹配的元素 指定的选择器

查找具有.super-active class列表项的ul.sub选项卡,并将class.super-active添加到ul:

$('ul.sub-tab:has(li.super-active)').addClass('super-active');
例如:

$'ul.sub选项卡:hasli.super-active'.addClass'super-active'; .sub-tab.super-active{ 背景:金; }
我认为最简单的方法是:

$li.super-active.parent.addClasssuper-active

根据您使用的是有效html元素的事实,父元素必须是元素,在这种情况下也可以是

$”。主选项卡>LIA。单击函数{ $this.sibbines'.sub选项卡'.slideToggle200; $this.parent.sibbines'li'.children'.sub选项卡'.slideUp200; }; $'.main选项卡li'.eachfunction{ id='10'; $links=$.main选项卡li[数据id=+id+]; $links.addClasssuper-active; //console.log1234; }; $li.super-active.parent.addClasssuper-active; console.log$.super-active; .main选项卡ul{ 左侧填充:10px; } .子选项卡{ 显示:无; } .超主动img{ 显示:块!重要; }
$'ul.sub-tab>li.super-active'.parent.addClass'super-active';这很有效,谢谢。如果列表是三级的,那该怎么办。“家长”将只接受该li的第一位家长,对吗?是的,会的,如果您想在所有ancostor s上分配该类,请更新您的问题,我将更新我的答案。@dave请回答问题,以便我可以接受它。谢谢这有两种不同的方法。我只需要带有特定元素的ul。我已经更改了演示,为ul添加了一个背景,该背景具有一个带有.super-active类的列表项。我知道了,但不能打开main2和main3@oridroriI没有从您的代码中获取所有功能,只是演示了我对您的问题的解决方案的部分。用你自己的代码试试。我不能接受你的答案,因为戴夫先给出了答案。对不起,谢谢你的洗液&39;It’没关系,我喜欢为社区做贡献。无论如何,请注意,我的答案与Dave给出的不一样。当然,我注意到,@Dave提供的答案也是正确的,这也可以解决我的问题再次感谢您抽出时间。我会接受您的回答,因为@dave没有回答