Search code examples
jquerypathname

Getting the pathname of a URL stored in a variable


I'm trying to get /blog in order to put in url_pathname.

var link = 'http://www.example.com/blog';
alert(url_pathname);

if the link was 'http://www.example.com/blog/post', url_pathname would be /blog/page

I tried the following without success.

var link = 'http://www.example.com/blog';
var url_pathname = link[0].pathname;
alert(url_pathname);

Solution

  • The pathname properties are only available on the location object and link elements. Assign the string to an anchor, and read the value from the parsed link, as follows:

    var link = 'http://www.example.com/blog';
    var a = document.createElement('a'); // Create a dummy <a> element
    a.href = link;                       // Assign link, let the browser parse it
    var url_pathname = a.pathname;
    alert(url_pathname);
    


    Explanation of your failed method:

    • link is a string.
    • When you use link[0], you get the first character of the string, h.
    • Then, you're trying to get the pathname property of it. This property is not defined on the string, hence you receive undefined.
      (added this explanation to clarify why JavaScript didn't throw an error)