[英]Select the parent of an element which has a certain class
I built up a navigation bar which has the following sort of markup: 我建立了一个导航栏,其中包含以下标记:
<ul class="nav">
<li class="active"><a href="blah.html">S</a></li>
<li><a href="blah1.html">S1</a></li>
<li><a href="blah2.html">S2</a></li>
<li><a href="blah3.html">S3</a></li>
</ul>
In one my events here, I have the access to the a
element on which the user clicked. 在我这里的事件中,我有权访问用户单击的
a
元素。
$('.nav').on('click', 'li a', function(){
var clickedLink = $(this);
var prevActiveLI = ?
var currentClickedAnchorsParentLI = ?
});
There are two things I want to get here for my purpose. 我想要达到目的有两件事。 The previous
li
tag which has the active
class applied and secondly, the li
tag for the a
which has just been clicked. 之前的
li
标签已应用了active
类,其次是刚刚单击的a
的li
标签。 How can that be accessed? 如何访问?
$('.nav').on('click', 'li a', function(){
var clickedLink = $(this);
var prevActiveLI = clickedLink.closest('ul.nav').find('li.active');
var currentClickedAnchorsParentLI = clickedLink.parent();
});
Try this: 尝试这个:
$('.nav').on('click', 'li a', function(){
var clickedLink = $(this);
var prevActiveLI = $('.active', $clickedLink.closest('.nav'));
var currentClickedAnchorsParentLI = $clickedLink.closest('li');
});
var $prevLi,
$currentLi
;
$('.nav').on('click', 'li a', function(){
var clickedLink = $(this);
if($currentLi) {
$prevLi = $currentLi;
}
$currentLi = clickedLink.parent();
});
$('.nav').on('click', 'li a', function(){
var clickedLink = $(this);
var currentClickedAnchorsParentLI = clickedLink.parent();
if(!currentClickedAnchorsParentLI.hasClass("active"))
var prevActiveLI = currentClickedAnchorsParentLI.siblings(".active").first();
//else
//
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.