通过将URL拆分为数组,获取域名后的部分URL

时间:2012-08-10 09:14:06

标签: javascript jquery arrays

我已经制作了这段代码:

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

    var pathArray = pathArray[3, 4];

pathArray值为["http:", "", "www.mikevierwind.nl", "portfolio", "ruimzicht.html"]

如何获取此数组的最后两项。我希望结果是portfolio / ruimzicht.html。

5 个答案:

答案 0 :(得分:38)

您不需要任何此类内容,只需要window.location.pathname

> window.location.pathname
"/questions/11898626/get-items-of-the-array/11898963"

这将让您将来拥有像“portfolio / 2012 / ruimzicht.html”这样的目录,并将域名更改为“www.mikevierwind。???”无需更改代码。


如果您目前不在该域名(并且无法执行上述操作),您可以使用单行方式执行此操作:

> pathArray.slice(-2).join('/')
"portfolio/ruimzicht.html"

但这不像以上那样具有前瞻性。为了使其面向未来,您可以:

> url.split(document.domain)[1].slice(1)
"portfolio/2012/ruimzicht.html"

如果您当前不在域中,那么通常会对外国网址执行此操作,因此无法执行window.location.pathname

答案 1 :(得分:0)

你可以试试这个

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

var pathArray = pathArray[3] +'/'+ pathArray[4];

答案 2 :(得分:0)

如果您没有固定大小或元素数量,则可以使用数组长度。

var path = array[array.length-2]+'/'+array[array.length-1];

如果你只是想让路径使用普通的JS或jQuery,就像他们在评论中建议的那样。

//Plain JS
var path = window.location.pathname;
//jQuery
$(location).attr('pathname'); 

答案 3 :(得分:0)

或者可能是这样的

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

var pathArray = pathArray.join('/');

答案 4 :(得分:0)

尝试

console.log(new URL(document.URL));

您将获得URL对象