2014-12-08 80 views
1

我认为这应该相当简单,但Google没有产生任何结果,所以希望这里有人可以提供帮助。jQuery:追加HTML如果标签包含特定的类

使用jQuery我想在元素中追加一些HTML,如果它包含具有特定类的ul。

所以如果一个“main-menu li”元素包含“ul.sub-menu”,我想在包含它的“main-menu li”元素中追加“expand”div。

这里是我的工作的HTML:http://pastebin.com/4pwN9Rte

任何帮助,非常感谢!

回答

2

试试这个:

$('.main-menu > li').find('ul.sub-menu').parent('li').append($('<div/>').addClass('expand')); 

说明:

采取.main-menu列表li孩子的,找到ul子菜单并追加了新的div带班扩大到其父li元素。

或较短的版本:

$('.main-menu > li:has(ul.sub-menu)').append($('<div/>').addClass('expand')); 

这里是一个的jsfiddle显示:http://jsfiddle.net/03j5fkyh/1/

+0

谢谢,这完美的作品! – 2014-12-08 08:02:19

+0

不要忘了关闭你的问题,通过设置解决方案作为答案在左侧 – Mivaweb 2014-12-08 08:49:41

0

非常容易,真的!干杯! CODEPEN

$('li:has(.sub-menu)').prepend('<div class="expand">asdfasdfasdf</div>'); 
1

试试这个

if($("main-menu li ul").hasClass("sub-menu")){ 
     $("main-menu li").append("#expand"); 
} 

希望它会工作

+0

这将在ul列表中添加div而不是在它后面,如果它不是最后一个ul列表又怎么办? – Mivaweb 2014-12-08 07:53:28

+0

请再次仔细阅读该问题。你的答案不**回答原来的问题。 – DavidPostill 2014-12-08 08:07:31

+0

对不起,我误解了它 – Madhav 2014-12-08 08:07:44