2

My html is this

<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>

So i want to add all classes to the elements via Jquery.I want to add data-toggle attribute via Jquery.I'm doing it like bellow but it's not 100% correct.I want to find ul if it i's parent element is li and add class to the ul and to the parent element

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

3 に答える 3

3

すべての ul を取得してから、親がli

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

コメントの2番目のケース

子として ul 要素がある場合、li にドロップダウン クラスを追加します。

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

親要素がliの場合、ulを見つけたい

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

これを試して-

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

li タグ内に別の UL が存在する場合にクラスを適用しないようにするための予防措置として、:first を使用しました。

于 2013-06-19T10:00:57.973 に答える