2

我的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 添加 data-toggle 属性。我正在像下面那样做,但它不是 100% 正确。ul我想查找它是否是父元素li并添加类到ul父元素

查询

$(".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();
4

3 回答 3

3

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

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

对于评论中的第二种情况

如果它有 ul 元素作为子元素,则将下拉类添加到 li

$('li:has(ul)').addClass('dropdown')
于 2013-06-19T09:42:48.980 回答
2

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

$("li > ul")
于 2013-06-19T10:28:21.457 回答
0

尝试这个-

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

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

于 2013-06-19T10:00:57.973 回答