找到ul,如果它的父元素是li

时间:2013-06-19 09:41:17

标签: javascript jquery html css

我的HTML就是这个

<div class="nav-collapse collapse">
  <ul class="nav">
    <li class="dropdown">
      <a href="#" class="dropdown-toggle" data-toggle="dropdown">Dropdown <b class="caret"></b></a>
      <ul class="dropdown-menu">
        <li><a href="#">Action</a></li>
        <li><a href="#">Another action</a></li>
        <li><a href="#">Something else here</a></li>
        <li class="divider"></li>
        <li class="nav-header">Nav header</li>
        <li><a href="#">Separated link</a></li>
        <li><a href="#">One more separated link</a></li>
      </ul>
    </li>
  </ul>
</div>

所以我想通过Jquery将所有类添加到元素中。我希望通过Jquery添加数据切换属性。我这样做就像下面但是它不是100%正确。我想找到ul如果我的父元素是li并将类添加到ul和父元素

JQUERY

$(".nav-collapse").find("ul").first().addClass("nav");
 $(".nav-collapse").find("li").hast("ul").addClass("nav");
$(".nav").find("li a").attr("data-toggle", "dropdown").append("<b class='caret'></b>");
$(".nav").find("li ul").addClass("dropdown-menu");
$(".nav").find("li ul li").addClass("dropdown-submenu");
$('.dropdown-toggle').dropdown();

3 个答案:

答案 0 :(得分:3)

获取所有ul,然后仅过滤父项为li

的项目
$('ul').filter(function(){
    return $(this).parent().is('li')
}).addClass('dropdown-menu')

评论中的第二个案例

  

如果li具有子元素

,则将dropdown类添加到li
$('li:has(ul)').addClass('dropdown')

答案 1 :(得分:2)

  

如果我的父元素是li

,我想找到ul
$("li > ul")

答案 2 :(得分:0)

试试这个 -

if($('li>ul:first')){
        $('li>ul:first').addClass('dropDown-menu');
        $('.dropDown-menu').parent().addClass('dropDown');
    }

我已经使用:首先,作为预防措施,如果li标签中存在另一个UL,则应避免应用该类。