我有HTML结构,如
<ul>
<li><a></a>
<ul>
<li><a></a>
<ul>
<li><a></a>
<ul>
<li><a></a></li>
</ul>
</li>
</ul>
</li>
</ul>
我想添加&#39;有效&#39;相关的课程&#39; a&#39;单击相应li时的元素。
答案 0 :(得分:3)
使用 children()
方法,因为您只想选择直接孩子
$('li').click(function(){
$(this).children('a').addClass('active')
})
或使用 >
选择直接儿童
$('li').click(function(){
$('>a', this).addClass('active')
})
答案 1 :(得分:2)
$('#a').on('click', function(){
$('a', this).addClass('active');
});
&#13;
<ul>
<li id="a"><a></a>
<ul>
<li id="b"><a></a>
<ul>
<li id="c"><a></a>
<ul>
<li id="d"><a></a></li>
</ul>
</li>
</ul>
</li>
</ul>
&#13;
答案 2 :(得分:1)
委托点击处理程序最有可能最好地解决您的问题。
$('ul.master').on('click', 'li', function (evt) {
evt.stopPropagation();
// I added this line to remove active class from all other a tags
$(this).parents('ul.master').find('a').removeClass('active');
$(this).children('a').addClass('active');
});
请参阅此jsfiddle
您可以直接使用<a>
标记来捕获更改活动类的点击。如果您需要直接使用<li>
,您可以附加另一个处理程序。
$('a').click(function(evt){
$(this).addClass('active');
});
$('li').click(clickHandler);
答案 3 :(得分:0)
你的意思是这样的?
$('li').on('click', function(){
$('a', this).addClass('active');
});
答案 4 :(得分:0)
直接针对li a:
$('li a').on('click', function(){
$(this).addClass('active')
});
答案 5 :(得分:0)
$('li').on('click', function(){
$(this).closest('a').addClass('active');
});
答案 6 :(得分:0)
使用第一个孩子:首先(如果每个李只有一个锚)使用addclass方法来分配类
答案 7 :(得分:0)
我修复了您的HTML:
&#xA;&#xA; &lt; ul&gt;&#xA; &LT;李&GT;&#XA; &LT; A&gt;将&LT; / A&GT;&#XA; &LT; UL&GT;&#XA; &LT;李&GT;&#XA; &LT a取代; B&LT; / A&GT;&#XA; &LT; UL&GT;&#XA; &LT;李&GT;&#XA; &LT a取代; C&LT; / A&GT;&#XA; &LT; UL&GT;&#XA; &LT;李&GT;&#XA; &LT a取代; d&LT; / A&GT;&#XA; &LT; /立GT;&#XA; &LT; / UL&GT;&#XA; &LT; /立GT;&#XA; &LT; / UL&GT;&#XA; &LT; /立GT;&#XA; &LT; / UL&GT;&#XA; &lt; / li&gt;&#xA;&lt; / ul&gt;&#xA;
&#xA;&#xA; jQuery + JS代码:
&#xA; &#xA; &lt; script src =“https://code.jquery.com/jquery-3.0.0.min.js”&gt;&lt; / script&gt;&#xA;&lt; script类型= “文本/ JavaScript的” &GT;&#XA; $( 'A')上单击(函数(){&#XA; $(本).parent( '礼')addClass( '激活')&#。 XA;})&LT; /脚本&GT;&#XA; 代码>
&#XA;
答案 8 :(得分:0)
$(document).on('click', 'a', function(){
if($(this).parent('li').length) {
$(this).parent('li').addClass('active');
}
});