javascript - 简单的 jQuery addClass() 似乎不起作用

标签 javascript jquery

我希望能够确定用户当前所在的页面。一个简单的指示器,以向用户当前正在查看其上下文的导航链接添加独特样式的形式

这是我的脚本,所有选择器都工作正常,if 语句也可以,但是 addClass() 函数什么都不做。这是我的代码:

<script>
$(document).ready(function(){
    var pathname = window.location.pathname;
    $("#links ul li a").each( function() {
        var href= $(this).attr("href");
        if (pathname.indexOf(href) >= 0){
            $(this).addClass("active");
        }
    } );
});
</script>


    <nav id="links">
    <ul>
        <li><a href="index.php">Home</a></li>
        <li><a>About</a></li>
        <li><a>Contact</a></li>
    </ul>
</nav>

HTML:

可以使用了,这是我的最终代码,是否需要任何改进?

$(document).ready(function(){
    var pathname = window.location.pathname;
    var onDomain=true;
    $("#links ul li a").each( function() {
        var href= $(this).attr("href");
        if (href != undefined && pathname.indexOf(href) >= 0){
            $(this).addClass("active");
            onDomain=false;
        }
    });
    if (onDomain){
        $("#links ul li:first-child a").addClass("active");
    }
});

最佳答案

href赋给a

<nav id="links">
    <ul>
        <li><a href="index.php">Home</a></li>
        <li><a href="">About</a></li>
        <li><a href="">Contact</a></li>
    </ul>
</nav>

然后尝试:

   var pathname = window.location.pathname;
   $("#links ul li a").each( function() {
        var href= $(this).attr("href");
        if (href.length && pathname.indexOf(href) >= 0){
            $(this).addClass("active");
        }
    });

如果您无法更改 HTML,请尝试以下操作:

   var pathname = window.location.pathname;
   $("#links ul li a").each( function() {
        var href= $(this).attr("href");
        if (href != undefined && pathname.indexOf(href) >= 0){
            $(this).addClass("active");
        }
    });

关于javascript - 简单的 jQuery addClass() 似乎不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10473584/

相关文章:

javascript - 删除文件夹 Google 脚本中除 x 个最新文件之外的所有文件

javascript - 在 html span 元素后添加文本

javascript - 删除/移动 Google Chrome 左下角的状态栏(链接地址栏)

jquery:如何在出现逗号时向文本添加新行

javascript - Greasemonkey @require jQuery 不工作 "Component not available"

javascript - 将数据 Blade (laravel)传递给 react 组件

javascript - 我如何将其传递给 JavaScript 中的 SetTimeout() 函数?

javascript - 递归 - javascript

php - 将 json 从 jquery 发送到 php 并插入数据库

javascript - 无法进入下一个输入字段 - jQuery