我制作一个剧本。得到元素的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
这几乎是好的。我怎样才能删除第一个/。
您是否有任何改进代码的提示?
答案 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
它使代码更简单,更易于阅读和维护。