2014-05-12 54 views
-1

我有一个导航,我需要动态地添加<br>,因为我们使用的CMS不允许这样做。jQuery防止子记录

但它正在影响下拉列表中的所有子元素。

下面是基本的HTML

<li class="dropdown yamm-fw" id="tab1"><a href="#" data-toggle="dropdown" class="dropdown-toggle">Shop By Brand</a> 
    <ul class="dropdown-menu"> 
     <ul class="col-sm-2 megaDropDown"> 
      <li><a href="#">List Item</a></li> 
      <li><a href="#">List Item</a></li> 
      <li><a href="#">List Item</a></li> 
      <li><a href="#">List Item</a></li> 
      <li><a href="#">List Item</a></li> 
      <li><a href="#">List Item</a></li> 
     </ul> 
    </ul> 
</li> 

这里是添加<br>

$(function(){ 
    $('#tab1 a').each(function(index) { 
     var aHtml = $(this).html(); 
     var pos = aHtml.lastIndexOf(' '); 
     aHtml = aHtml.substring(0,pos) + '<br/>' + aHtml.substring(pos+1) 
     $(this).html(aHtml); 
    }); 
}); 

的JS,但我希望它影响到下拉TAB1仅罢了。我有一个小提琴在这里创建http://jsfiddle.net/6CTY8/

回答

2

使用child selector

从文档:

Selects all direct child elements specified by "child" of elements specified 
by "parent". 

试试这个:

$('#tab1 > a').each(function(index) { 
     //YOUR CODE GOES HERE 
}); 

DEMO

+0

感谢帮助!完美工作... – Travis

+0

@FrédéricHamidi:更新的兄弟:) – Unknown

+0

@ Travis:很高兴帮助兄弟:) – Unknown

3

$('#tab1 > a').each(function(index) {

使用>将确保只有直系后代被使用。

这里也是一个小提琴。 http://jsfiddle.net/6CTY8/2/

+0

优秀的,我会接受的答案,只要这样才能使我。完美工作! – Travis