2011-05-20 57 views
0

我有一个ul列表,我想用jQuery添加和删除类。 我首先想要列表中的所有链接都有一个顶级的类,但是如果我在ul中有一个子菜单来删除顶级类。在此之后,我想查找具有顶级类的所有列表项并将链接包含在其中。jQuery - 删除课后做点什么

$("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 wrap之后。

我的问题是如何在所有的类都按正确的顺序执行wrapInner函数。

谢谢!

+1

请显示预期的最终标记 – Alnitak 2011-05-20 16:00:07

+0

我在http://stackoverflow.com/users/97938/rwl的帮助下解决了这个问题,谢谢! – 2011-05-20 16:10:50

回答

2

只需使用更具体的选择,而不是添加类的每一个里,然后从嵌套那些去除类:

$("ul#top-menu > li").addClass('top-level'); 
$('ul#top-menu > li.top-level > a').wrapInner('<b></b>'); 

>(子选择器)的意思是“只针对直接孩子,不是所有的孩子。 “

+0

太好了。这将诀窍!我从来不知道什么>代表!谢谢! – 2011-05-20 16:01:59

+0

不客气,很高兴帮助! – RwwL 2011-05-20 16:06:33