获取要将类应用于nav jquery的页面的文件名

获取要将类应用于nav jquery的页面的文件名,jquery,Jquery,未应用活动类。 这是我到目前为止所拥有的,但是它不起作用 HTML <div class="list-group"> <a href="page1.php"> page 1</a> <a href="page2.php"> page 2</a> <a href="page3.php"> page 3</a> </div> JS .active { color: red; } $(d

未应用活动类。 这是我到目前为止所拥有的,但是它不起作用

HTML

<div class="list-group"> 
 <a href="page1.php"> page 1</a>
 <a href="page2.php"> page 2</a>
 <a href="page3.php"> page 3</a>
</div>
JS

.active {
    color: red;
}
$(document).ready(function(){ 
    var url = window.location.pathname;
    var filename = url.substring(url.lastIndexOf('/')+1);
    alert(filename);

    $(".list-group a").each(function(){
        if($(this).attr("href")==filename) // why cant i just add the var filename 
            $(this).addClass("active");
    });
});

你少了一些必要的制动装置-

if($(this).attr("href")==filename) {
    $(this).addClass("active");
}

但是它在这里工作(即使括号不存在)

您正在使用的选择器,
$(“.list group ul li a”)
不匹配任何内容,因为您没有属于
.list group
的任何未排序列表

当您使用一个选择器(元素名称的空格分隔列表)时,您告诉jQuery从选择列出的第一个元素开始,然后在该元素中查找下一个项目,然后在该元素中查找第三个项目,以此类推

由于您没有任何
ul
li
元素,因此
a
元素无法匹配

请尝试改用此选择器:
$('.list group a')

--编辑--

现在您已经使用我上面建议的选择器更新了您的问题,它应该可以正常工作了

这是一个例子


唯一改变的是使用文本输入来模拟窗口位置。尝试键入
http://www.example.com/page2.php
输入到文本输入中。请注意,第2页的链接现在按预期高亮显示为红色。

您的html是什么样子的?到底什么是“不工作”以及您希望发生什么?请解释什么不工作,包括您遇到的任何错误。。。不清楚您到底想问什么…没有应用var文件名。如何应用?你正在检查文件名和href是否完全相同,如果看不到文件名和锚点,我们就无能为力了?我已经更新了帖子。非常感谢Jay,我知道这只是个小问题。