我有一个ul列表,我想用jQuery添加和删除类。 我想首先从列表中的所有链接有一个类顶级,但如果我在ul中有一个子菜单删除顶级类。在此之后,我想找到顶级类的所有列表项并将链接包装在其中。
$("ul#top-menu li").addClass('top-level');
$("ul#top-menu li ul.sub-menu li").removeClass('top-level');
$('ul#top-menu li.top-level a').wrapInner('<b></b>');
此代码的问题在于它将从列表项中删除该类,但是在添加了wrap内部之后。
我的问题是如何在所有类的顺序正确后执行wrapInner函数。
谢谢!
答案 0 :(得分:2)
只需使用更具体的选择器,而不是为每个li添加一个类,然后从嵌套的类中删除一个类:
$("ul#top-menu > li").addClass('top-level');
$('ul#top-menu > li.top-level > a').wrapInner('<b></b>');
>
(子选择器)的意思是“只针对直接孩子,而不是所有孩子。”