Javascript 如何将活动类添加到所选li的父级?
这是我正在使用的jsJavascript 如何将活动类添加到所选li的父级?,javascript,jquery,html,css,Javascript,Jquery,Html,Css,这是我正在使用的js $(function() { var pgurl = window.location.href.substr(window.location.href .lastIndexOf("/") + 1); $("#nav ul ul li a").each(function() { if ($(this).attr("href") == pgurl || $(this).attr("href") == '')
$(function() {
var pgurl = window.location.href.substr(window.location.href
.lastIndexOf("/") + 1);
$("#nav ul ul li a").each(function() {
if ($(this).attr("href") == pgurl || $(this).attr("href") == '')
$(this).closest('li').addClass('active');
});
});
- 您是否尝试过使用儿童的方法?愿它对你有用
我将更改您的代码:
<div id="nav">
<ul>
<li class="headerFont"><a href="index.jsp"><b>HOME</b></a></li>
<li class="headerFont"><a href="link.jsp"><b>HOW TO
DONATE</b></a></li>
<li class="headerFont"><a href="#"><b>DONATE</b></a> <----- AND THIS SINCE SHOULD
<ul> ALSO BE ACTIVE
<li class="headerFont"><a href="link2.jsp"><b>DONATION <----- IF I SELECT THIS
CENTER <img id="arrow" src="img/arrow.png" /> IT SHOULD BE ACTIVE
</b></a></li>
<li class="headerFont"><a href="link3.jsp"><b>HOW ELSE
CAN I DONATE? <img id="arrow" src="img/arrow.png" />
</b></a></li>
</ul>
</li>
</ul>
</div>
对于您可以想象的几乎每个嵌套元素的交互,都有一个Jquery方法
在你的情况下,最合适的是
正如名称所述,它将选择每个父级,直到满足选择器条件。作为可选的第二个参数,可以过滤结果,将选择范围缩小到所需的图元类型
所以,你会有这样的想法:
$("#nav ul ul").children("li").each(function() {
if ($(this).find("a").attr("href") == pgurl || $(this).find("a").attr("href") == '')
$(this).addClass('active');
});
这将针对每一位家长li
,直到它达到最高的ul
尝试:
$(“#nav”)。在(“单击”,“li”,函数()上){
$(this.addClass('active');
});
这会将活动类添加到单击的li
中,并将li
父类添加到父类中。要使父类li
都处于活动状态,还是仅使其处于最顶端?请使用$(this.closest('li')。addClass('active')。parents('li')。addClass('active')。addClass('active')
,它将查找所有祖先li
元素,并为其指定类active
。可能会有帮助。@LcSalazar两者都会better@ckuijjer谢谢我试试看!我试过了。仍然是一样的,仍然只有子级获得活动类。。。你能给我一些样品吗?
$(this).parentsUntil("#nav > ul", "li").addClass("active");