jQuery - 如果 parent 还没有 class
jQuery - if parent has not class
我想创建 auto-add class 到 DIV,所以我这样做:
$( '.navigation' ).find( 'li.active' ).parents( 'li' ).addClass( 'active' );
效果很好!但是现在我需要 'ignore' parents 如果有,例如。 'dropdown-toggle' 所以我将其修改为:
$( '.navigation' ).find( 'li.active' ).parents( 'li:not(.dropdown-toggle)' ).addClass( 'active' );
但这不起作用 - 我的问题在哪里?
尝试将 parents()
与 :not
一起使用,例如:
$('.navigation li.active').parents('li:not(".dropdown-toggle")').addClass('active');
希望这对您有所帮助。
$('.navigation li.active').parents('li:not(".dropdown-toggle")').addClass('active');
.active{
background-color:green;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul class='navigation'>
<li>Water</li>
<li>Tea
<ul>
<li>Black tea</li>
<li class='active'>Green tea</li>
</ul>
</li>
<li>Milk</li>
<li class='dropdown-toggle'>Coffee (Has dropdown-toggle class)
<ul>
<li>Black Coffee</li>
<li class='active'>Cream Coffee</li>
</ul>
</li>
</ul>
我想创建 auto-add class 到 DIV,所以我这样做:
$( '.navigation' ).find( 'li.active' ).parents( 'li' ).addClass( 'active' );
效果很好!但是现在我需要 'ignore' parents 如果有,例如。 'dropdown-toggle' 所以我将其修改为:
$( '.navigation' ).find( 'li.active' ).parents( 'li:not(.dropdown-toggle)' ).addClass( 'active' );
但这不起作用 - 我的问题在哪里?
尝试将 parents()
与 :not
一起使用,例如:
$('.navigation li.active').parents('li:not(".dropdown-toggle")').addClass('active');
希望这对您有所帮助。
$('.navigation li.active').parents('li:not(".dropdown-toggle")').addClass('active');
.active{
background-color:green;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul class='navigation'>
<li>Water</li>
<li>Tea
<ul>
<li>Black tea</li>
<li class='active'>Green tea</li>
</ul>
</li>
<li>Milk</li>
<li class='dropdown-toggle'>Coffee (Has dropdown-toggle class)
<ul>
<li>Black Coffee</li>
<li class='active'>Cream Coffee</li>
</ul>
</li>
</ul>