javascript - 我怎样才能给菜单项激活类

标签 javascript jquery html asp.net

我有以下 HTML 代码段:

<div class="w-nav-item-h" id="mydiv">
<a class="w-nav-anchor level_1" href="/english/about-us/word-from-the-chairman">
<span class="w-nav-title">Word from the Chairman</span>
</a>
</div>

我想根据带有以下 JavaScript 代码的页面网址,为“mydiv”标识的 div 指定“active”类:

<script type="text/javascript">
            $(function () {

                $("#mydiv").removeClass('active');

                var lnk = window.location.href;
                lnk = lnk.toLowerCase();
                $("#mydiv a").each(function (index) {
                    if (lnk.indexOf($(this).html().trim().toLowerCase().replace(" ", "-")) != -1) {
                        $(this).parent().addClass('active');
                    }
                });
            });
      </script>

不幸的是,它不起作用。请帮我找到一个好的解决方案。

最佳答案

您需要使用replaceregular expression to .replace 将始终替换第一个匹配项,除非您使用正则表达式。

还可以使用.text()而不是.html()来查找 anchor 的文本。即主席的话

代码

$(function () {
    $("#mydiv").removeClass('active');
    var lnk = window.location.href;
    lnk = lnk.toLowerCase();
    $("#mydiv a").filter(function (index) {
        var thisText = $(this).text().trim().toLowerCase().replace(/ /g, '-');
        return lnk.indexOf(thisText) > -1;
    }).parent().addClass('active');
});

DEMO在示例中,我对 url 使用了硬编码文本

关于javascript - 我怎样才能给菜单项激活类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23360617/

相关文章:

javascript - 将声明性绑定(bind)与 API 数据结合使用

javascript - 如何使用 Javascript 对 HTML 表单进行错误检查,包括验证字段是否填写正确?

html - float bootstrap4 仅适用于一种尺寸的屏幕

php - 避免 php 和 javascript 之间的重复代码

javascript - 内联JS,如何转义函数参数中的引号?

javascript - stampit.js `state` 对象不是实例安全的

javascript - 我是否有可能阻止黑客使用 Web 控制台使用 JavaScript 重复调用 upvote (AJAX) 函数?

jquery - 防止父元素上的 CSS 动画应用于子元素

html - 在 td 上添加粗边框会在嵌套表上增加额外空间

javascript - .NET Jquery 500 错误