繁体   English   中英

this.href vs $(this).attr('href')

[英]this.href vs $(this).attr('href')

阅读本文后, net.tutsplus.com/tutorials/javascript-ajax/14-helpful-jquery-tricks-notes-and-best-practices/我得出结论,使用this.href更有效。

但是,当我尝试在我的一个项目中使用它时,我看到this.href不仅返回href,还附加了一个网站的url。 例如<a href="tab-04"></a> this.href将返回http://example.com/abc/tab-04$(this).attr('href')将仅返回制表符-04。

你可以在http://jsfiddle.net/UC2xA/1/看到一个例子。

然而, $(this).attr('href')正好返回我需要的东西,仅此而已。

我的问题是,如何重写(或做必要的) this.href以便它只返回tab-04

编辑

道格,你是对的钱

this.getAttribute('href')

普通Javascript中的href属性将附加语义。 它返回链接将导致的目标URL。 它的编写方式无关紧要(绝对或相对URL)。

当您使用$(this).attr("href")您将直接检索href属性的值,就像任何其他属性一样,因此它将返回HTML中呈现的确切值。

对于你的情况,最好使用$(this).attr("href")

如果您不想使用jQuery,还有另一种解决方案,只使用纯JavaScript:

this.getAttribute('href')

document.getElementById(yourAnchorId).href.split("/")

[document.getElementById(yourAnchorId).href.split("/").length - 1].split("?")[0];

什么只是一个小子串?

例如 :

function getHref(a)
{
    var i = a.outerHTML.indexOf('href="')+6;
    return a.outerHTML.substring(i, a.outerHTML.indexOf('"', i));

}

PS测试了!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM