Получить части URL-адреса после имени домена //... путем разбиения URL-адреса на массив

Я сделал этот код:

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

Как я могу получить последние 2 элемента этого массива. Я хочу, чтобы результатом был портфолио/ruimzicht.html.

Ответ 1

Вам ничего не нужно, просто нужно 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.

Ответ 2

Вы можете попробовать это

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

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

Ответ 3

Вы можете использовать длину массива, если у вас нет фиксированного размера или количества элементов.

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

Если вы просто хотите, чтобы путь использовал простой JS или jQuery, поскольку они предлагают вам комментарии.

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

Ответ 4

Или Может быть что-то вроде этого

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

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