Wrong extraction of .attr("href") in IE7 vs all other browsers?
absolute-path, href, internet-explorer-7, jquery, relative-path
Solution
It's certainly not a bug in jQuery but instead browsers' inconsistent implementations of `.getAttribute('href')` - I suggest using just `.get(0).href` for consistency.
Seems like you can access the attribute text in IE and Mozilla using `.get(0).getAttribute('href', 2)` if you don't want the absolute URI. Note however this won't work in Opera and I haven't tested in Safari/Chrome/anything else.
You could also strip out the domain or split on '#' for `.get(0).href` and use the second part of the array assuming it even contains '#' ( check `.length` ).
http://www.glennjones.net/Post/809/getAttributehrefbug.htm
Problem
Can it really be true that the `attr("href")` command for a link is handled very different in IE7 in comparison to all other browsers? Let's say I have a page at http://example.com/page.html and I have this HTML: ``` <a href="#someAnchor" class="lnkTest">Link text</a> ``` and this jQuery: ``` var strHref = $(".lnkTest").attr("href"); ``` Then in IE7 the value of the `strHref` variable will be `"http://example.com/page.htm#someAnchor"` but in other browsers it will be `"#someAnchor"`. I believe that the last mentioned case is the most correct one, so is it just a case of IE7 being a bad boy or is it a bug in jQuery?