Reputation: 1520
I have make this code:
var newURL = $(".list-portfolio a").attr("href"),
pathArray = newURL.split( '/' ),
secondLevelLocation = pathArray[0];
console.log(pathArray);
var pathArray = pathArray[3, 4];
The pathArray value is ["http:", "", "www.mikevierwind.nl", "portfolio", "ruimzicht.html"]
How can i get the last 2 items of this array. I want that the results is portfolio/ruimzicht.html.
Upvotes: 20
Views: 30872
Reputation: 77
location.href.substr(location.href.indexOf(location.host)+location.host.length)
try this! it's contains URL parameters
Upvotes: 2
Reputation: 92407
Ninjagecko gives excelent answer - I improve it a little: you don't need use window
prefix, just
location.pathname
And some alternative way to get two last array items by use at()
[ pathArray.at(-2), pathArray.at(-1) ]
pathArray = ["http:", "", "www.mikevierwind.nl", "portfolio", "ruimzicht.html"];
result = [ pathArray.at(-2), pathArray.at(-1) ]
console.log(result.join`/`);
Upvotes: 0
Reputation: 435
try this
console.log(new URL(document.URL));
you would get object of URL
Upvotes: 1
Reputation: 91092
You don't need any of this, you just want window.location.pathname
:
> window.location.pathname
"/questions/11898626/get-items-of-the-array/11898963"
This will let you in the future have directories like "portfolio/2012/ruimzicht.html", and change domains to say "www.mikevierwind.???" without changing your code.
If you are not currently on the domain (and can't do the above), you can do it your way with a one-liner:
> pathArray.slice(-2).join('/')
"portfolio/ruimzicht.html"
But this is not future-proof like the above. To make it future-proof, you can do:
> url.split(document.domain)[1].slice(1)
"portfolio/2012/ruimzicht.html"
One would do this generally on foreign URLs when you are not currently on the domain and thus can't do window.location.pathname
.
Upvotes: 56
Reputation: 697
You could use array length if you don't have a fixed size or number of elements.
var path = array[array.length-2]+'/'+array[array.length-1];
If you just want the path use plain JS or jQuery as they suggest you in comments.
//Plain JS
var path = window.location.pathname;
//jQuery
$(location).attr('pathname');
Upvotes: 1
Reputation: 1869
Or May be something like this
var newURL = $(".list-portfolio a").attr("href"),
pathArray = newURL.split( '/' ),
secondLevelLocation = pathArray.shift();
var pathArray = pathArray.join('/');
Upvotes: 0
Reputation: 19591
You could try this
var newURL = $(".list-portfolio a").attr("href"),
pathArray = newURL.split( '/' ),
secondLevelLocation = pathArray[0];
console.log(pathArray);
var pathArray = pathArray[3] +'/'+ pathArray[4];
Upvotes: 0