Html 将样式应用于活动超链接而不为每个超链接指定类

Html 将样式应用于活动超链接而不为每个超链接指定类,html,css,hyperlink,Html,Css,Hyperlink,我希望用户通过突出显示超链接了解他们当前所在的页面 如果有必要的话,我没有使用按钮列表(),我只是使用链接 我不想在每个页面上给每个链接一个类来判断它是否处于活动状态 在不给每个活动链接一个类的情况下,是否有这样做的方法 我已经研究过这个问题,从我所看到的情况来看,jQuery可能是一种可能性,但我更愿意使用它,因为我对jQuery不太了解。如果有人知道任何jQuery解决方案,我很乐意看看 任何自动主动链路检测器(关于?:) 在我脑海中,我会抓取所有元素(或某个分组中的元素,或某个类中的元素,

我希望用户通过突出显示超链接了解他们当前所在的页面

如果有必要的话,我没有使用按钮列表(
  • ),我只是使用链接

    我不想在每个页面上给每个链接一个类来判断它是否处于活动状态

    在不给每个活动链接一个类的情况下,是否有这样做的方法

    我已经研究过这个问题,从我所看到的情况来看,jQuery可能是一种可能性,但我更愿意使用它,因为我对jQuery不太了解。如果有人知道任何jQuery解决方案,我很乐意看看


    任何自动主动链路检测器(关于?:)

    在我脑海中,我会抓取所有
    元素(或某个分组中的元素,或某个类中的元素,如导航)并检查当前URL是否==
    a.href

    大概是这样的:

    var a = document.getElementsByTagName('a');
    
    for (var idx= 0; idx < a.length; ++idx){
        if(a[idx].href == document.URL){
            // some styles here to the link background
            a[idx].style.backgroundColor = 'red';  
        }
    }
    
    var a=document.getElementsByTagName('a');
    对于(变量idx=0;idx

    如果您添加jQuery,它将使您的选择器更容易进行样式设置等。

    我认为这可能会起作用,但我还没有测试它
    它使用jQuery,可读性很强。
    但是,您应该处理路径名,以便在hrefHasPath函数中仅包含匹配所需的部分

    var links = $("#links a");               // gets all links within something with an id of "links"
    var pathname = window.location.pathname; // current url
    //for each link see if the href has something in the path, and if it does add a css class
    $.each(links, function(){ 
        if(hrefHasPath($(this).attr("href"))){
            $(this).addClass("highlight");
        } 
    });
    
    function hrefHasPath(href){
        return (href.indexOf("pathname ") != -1);
    }
    

    ;)谢谢@Entropy,但不幸的是,这个链接没有帮助。我知道,这个链接基本上是说,你不能用CSS实现这一点,但你不得不使用javascript(不一定是jQuery,但仍然是javascript)。:)我想是的:(,你推荐任何JQuery解决方案吗?好的,谢谢,我是JQuery新手,所以我会研究如何将它添加到我的网站中,并尝试一下。这会与css文件一起使用还是与新文件一起使用,然后“//do some styles”将它定向到我的css文件中?你可以在需要的页面上或在在每个页面上包含一个javascript文件,代码如下:
    Jakub发布的文件就是javascript。jQuery只会让它更简单、更干净,但如果必须这样做,我建议使用简单的javascript,用一个向href(live.active url)添加类的代码替换
    //do some style
    然后在CSS表中管理样式部分。我添加了一个快速的“背景色”样式,并删除了调试部分。这不起作用,但我担心这与我的按钮的编写方式有关。它们没有使用导航栏
    • 等。它们都在一个div中。每个按钮都有一个div和一个我给定的类它。当然还有一个超链接,仅此而已。这也没有起作用,但我确信这是因为我没有正确使用它。我在顶部有一个脚本。我在css中有一个名为“#highlight”的类,我有我的按钮,但当我转到它们(当它们处于活动状态时)时,它们不会改变。