获取元素的url

时间:2012-08-09 16:43:08

标签: javascript jquery arrays url

我制作一个剧本。得到元素的href。但我只想要这个网址的最后一部分。我做到了:

var newURL = $(".list-portfolio a").attr("href");
    pathArray = newURL.split( '/' ),
        secondLevelLocation = pathArray[0];

    var newPathname = "";
    for ( i = 3; i < pathArray.length; i++ ) {  
      newPathname += "/";
      newPathname += pathArray[i];
    }

这导致/portfolio/ruimzicht.html这几乎是好的。我怎样才能删除第一个/。

您是否有任何改进代码的提示?

4 个答案:

答案 0 :(得分:2)

为什么不使用数组函数?

var pathArray = ["portfolio", "ruimzicht.html"];

// build a string by inserting a forward slash between all elements
pathArray.join("/");

// results in: portfolio/ruimzicht.html

如果您只对最后一部分感兴趣,可以将其缩小为一个衬垫:

url.split("/").pop(); // yields "ruimzicht.html"

答案 1 :(得分:0)

尝试使用此功能来避免/

的第一次连接
for ( i = 3; i < pathArray.length; i++ )
{  
    if(i != 3)
        newPathname+= "/";

    newPathname += pathArray[i];
}

答案 2 :(得分:0)

newPathname = newPathname.trim("/");

答案 3 :(得分:0)

我认为以这种方式进行URL解析会使代码变得脆弱且容易出错。您可以使用像jQuery-URL-Parser这样的第三方插件,而不是进行所有字符串拆分和/或正则表达式操作,它允许您从元素中获取URL并将其分解为不同的部分,以便您可以访问文件名或主机名等。以下是一个如何在您的案例中使用它的示例。

var url = $.url($(".list-portfolio a").attr("href"));
url.attr('file'); // this will give you ruimzicht.html

它使代码更简单,更易于阅读和维护。