阅读完本文net.tutsplus.com/tutorials/javascript-ajax/14-helpful-jquery-tricks-notes-and-best-practices/后,我得出结论,使用 this.href 效率更高。
但是,当我尝试在我的某个项目中使用它时,我看到 this.href 不仅返回href,还会附加网站的网址。例如<a href="tab-04"></a>
this.href 将返回http://example.com/abc/tab-04而 $(此).attr('href')将仅返回tab-04。
您可以在此处查看示例http://jsfiddle.net/UC2xA/1/。
然而$(this).attr('href')正是我所需要的,仅此而已。
我的问题是,如何重写(或做必要的) this.href 以便它只返回 tab-04 ?
修改
this.getAttribute('href')
,道格,你是对的
答案 0 :(得分:54)
普通Javascript中的href
属性将附加语义。它返回链接将导致的目标URL。它的编写方式无关紧要(绝对或相对URL)。
当您使用$(this).attr("href")
时,您将直接检索href
属性的值,就像任何其他属性一样,因此它将返回HTML中呈现的确切值。
对于您的情况,最好使用$(this).attr("href")
如果您不想使用jQuery,还有另一种解决方案,只使用纯JavaScript:
this.getAttribute('href')
答案 1 :(得分:1)
document.getElementById(yourAnchorId).href.split("/")
[document.getElementById(yourAnchorId).href.split("/").length - 1].split("?")[0];
答案 2 :(得分:1)
什么只是一个小子串?
例如:
function getHref(a)
{
var i = a.outerHTML.indexOf('href="')+6;
return a.outerHTML.substring(i, a.outerHTML.indexOf('"', i));
}
P.S TESTED!