17

我已经制作了这段代码:

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"]

我怎样才能得到这个数组的最后两项。我希望结果是投资组合/ruimzicht.html。

4

5 回答 5

51

您不需要任何这些,您只需要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"

当您当前不在域中时,通常会在外国 URL 上执行此操作,因此无法执行此操作window.location.pathname

于 2012-08-10T09:34:30.753 回答
1

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

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

如果您只想要路径,请使用他们在评论中建议的普通 JS 或 jQuery。

//Plain JS
var path = window.location.pathname;
//jQuery
$(location).attr('pathname'); 
于 2012-08-10T09:21:33.040 回答
0

你可以试试这个

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

var pathArray = pathArray[3] +'/'+ pathArray[4];
于 2012-08-10T09:17:13.307 回答
0

或者可能是这样的

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

var pathArray = pathArray.join('/');
于 2012-08-10T09:22:50.950 回答
0

尝试这个

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

你会得到 URL 的对象

于 2019-11-26T07:53:44.333 回答