首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >.parents().addClass("selected");不工作

.parents().addClass("selected");不工作
EN

Stack Overflow用户
提问于 2014-11-12 12:24:21
回答 4查看 503关注 0票数 0

我希望当选择一个子项时,三级下拉菜单中的所有父项都突出显示。根据我所读到的和得到的建议,这应该是可行的:

代码语言:javascript
复制
$(this).parents().addClass("selected");

但对我来说却并非如此。

我都试过了:

代码语言:javascript
复制
$(this).parent().addClass("selected");

代码语言:javascript
复制
$(this).parents("li").addClass("selected");

但还是一无所获。有没有人能看到我做错了什么?你可以在这里看到它的实际效果http://portergroup.businesscatalyst.com/hyundai.html

代码语言:javascript
复制
<!-- menu starts here -->
<div class="navBox">
<ul>
    <li><a href="#">SALES</a>
        <ul id="subnavlist" class="newWidth">
            <li><a href="#">NEW</a>
                <ul id="sub-subnavlist">
                    <li><a href="#">Hyundai</a></li>
                    <li><a href="#">Bomag</a></li>
                </ul>
            </li>
            <li class="subNavIndustry"><a href="#">INDUSTRIES SERVED</a>
                <ul class="navIndustries" id="sub-subnavlist">
                    <li><a href="#">Quarry and Mining</a></li>
                    <li><a href="#">Construction</a></li>                    
                </ul>
            </li>
        </ul>
    </li>
</ul>
</div>
<!-- menu ends here -->


$('.navBox li a').each(function(index) {
        if(this.href.trim() == window.location)
            //$(this).addClass("selected");  //this line works as far as highlighting the selected item
            $(this).parents().addClass("selected");  //this does not work
        });
EN

回答 4

Stack Overflow用户

发布于 2014-11-12 12:30:42

使用parentsUntil(在这里您将把直到您想要的父级),例如,如果您想要所有的父级直到类容器-您需要这样做

代码语言:javascript
复制
$(this).parentsUntil('.container').addClass("selected");
票数 0
EN

Stack Overflow用户

发布于 2014-11-12 12:36:25

jquery选择器或addClass()方法没有问题!问题是使用if(this.href.trim() == window.location)语句。它不会返回true,因此没有添加这个类。检查工作代码,this.href只返回#,而不是完整的url。

票数 0
EN

Stack Overflow用户

发布于 2014-11-12 12:37:36

使用location.hrefwindow.location.href而不是window.location

代码语言:javascript
复制
    $('.navBox li a').each(function(index) {
        if(this.href.trim() === window.location.href) {
            $(this).parents().addBack().addClass("selected");
        }
    });

笔记

  1. window.location是一个对象:

Location {replace: function, assign: function, ancestorOrigins: DOMStringList, origin: "http://portergroup.businesscatalyst.com", hash: ""…}

您可以采用的另一种方法是单行

代码语言:javascript
复制
$('.navBox li a[href="' + location.href + '"]')
.parents().addBack().addClass('selected');
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26879248

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档