2015-03-27 6 views
0
<li class="view"> 
    <a href="#"><span>Settings</span> </a> 
    <ul > 
     <li ><a>Leave Settings</a></li > 
     <li ><a href="compansatorysetting.aspx">Compensatory Settings</a></li> 
    </ul> 
</li> 

Я хочу добавить class="open" в <ul>, когда я нажимаю <li>.добавить класс к ребенку динамически

Я использую

$(".view").click(function() { 
    $(this).children().addClass("open"); 
}); 

Это не работает. Любое решение?

+0

где класс 'mobview'? –

+0

вы присвоили 'view' классу' li', но ваша функция click работает над '.mobview'. – ajaykumartak

+0

sorry.I использовать '$ (". View "). Click (function() { $ (this) .children(). AddClass (" open "); });' – Safeena

ответ

4

Вы должны использовать .parent() или .closest('ul') для перемещения к родительскому уль элемента:

$(".view").click(function() { 
    $(this).parent().addClass("open"); 
}); 

Если вы хотите предназначаться внутренние элементы уль внутри щелкнул ли, а затем использовать .find() селектор:

$(".view").click(function() { 
    $(this).find('ul').addClass("open"); 
}); 
0

Вы используете неправильный класс

$(".view").click(function() { 
    $(this).children().addClass("open"); 
}); 
1

Если вы хотите назначить класс open только ul, используйте следующий код.

$(".view").click(function() { 
    $(this).children('ul').addClass("open"); 
}); 
0

Более удобный и короткий путь будет быть-

$('.view').click(function(){ 
    $('>ul',this).addClass('open');      
}); 

Example

Смежные вопросы