改进我的Javascript代码:在页面导航栏中设置链接样式

改进我的Javascript代码:在页面导航栏中设置链接样式,javascript,Javascript,一个javascript+DOM问题 有人能改进我的代码吗 我有这样一个页面导航栏(在某些页面上): 我希望我的javascript更改链接样式,以便突出显示当前页面的样式 我的javascript代码如下所示。它找到当前页面的url,然后尝试将其与链接标记之一匹配。如果匹配,则设置样式 function setPageBarStyle() { var pageNavBar = document.getElementById("pagebar"); if (pageNavB

一个javascript+DOM问题

有人能改进我的代码吗

我有这样一个页面导航栏(在某些页面上):


我希望我的javascript更改链接样式,以便突出显示当前页面的样式

我的javascript代码如下所示。它找到当前页面的url,然后尝试将其与链接标记之一匹配。如果匹配,则设置样式

function setPageBarStyle() {
    var pageNavBar = document.getElementById("pagebar");

    if (pageNavBar != null) {
        var fPath = document.location.pathname;
        var fPathParts = fPath.split('/');
        var fName = (fPathParts[fPathParts.length-1]); // file name after last slash. e.g. xyz.html

        var linkTags = pageNavBar.getElementsByTagName("a");
        for (var ii = 0; ii < linkTags.length; ii++) {
            var aUrl = linkTags[ii].href;
            var aUrlParts = aUrl.split("/");
            var aUrlLastPart = (aUrlParts[aUrlParts.length-1]); // part after last slash. e.g. xyz.html
            if (aUrlLastPart == fName) { 
                linkTags[ii].style.border="thin solid blue";
            }
        }
    }
}

setPageBarStyle();
函数setPageBarStyle(){
var pageNavBar=document.getElementById(“pagebar”);
如果(pageNavBar!=null){
var fPath=document.location.pathname;
var fPathParts=fPath.split('/');
var fName=(fPathParts[fPathParts.length-1]);//最后一个斜杠后的文件名。例如xyz.html
var linkTags=pageNavBar.getElementsByTagName(“a”);
对于(var ii=0;ii
如何改进代码?我不熟悉DOM脚本

我分割路径的方式似乎太冗长,有很多变量。我认为可以用正则表达式完成,但不知道如何使用javascript/DOM

谢谢。

您可以更改此选项:

var aUrl = linkTags[ii].href;
var aUrlParts = aUrl.split("/");
var aUrlLastPart = (aUrlParts[aUrlParts.length-1]); // part before last slash. e.g. xyz.html
为此:

  var aUrlLastPart = linkTags[ii].href.split("/").pop();
Pop()方法将返回split()返回的数组的最后一个元素,并将其从数组中删除(在您的例子中,这是不相关的)

我还建议签出或类似,以便更轻松地管理跨浏览器JS


如果有帮助,请告诉我!:)

这消除了6个变量!谢谢没问题:)很乐意帮忙。。。
  var aUrlLastPart = linkTags[ii].href.split("/").pop();