Javascript this.href vs$(this.attr(';href';)
阅读本文后,我得出结论,使用this.href更有效 然而,当我尝试在我的一个项目中使用它时,我发现this.href不仅返回href,还附加了一个网站的url。例如,Javascript this.href vs$(this.attr(';href';),javascript,jquery,Javascript,Jquery,阅读本文后,我得出结论,使用this.href更有效 然而,当我尝试在我的一个项目中使用它时,我发现this.href不仅返回href,还附加了一个网站的url。例如,this.href将返回,$(this).attr('href')将仅返回tab-04 你可以在这里看到一个例子 $(this.attr('href')但是,它只返回我所需要的内容 我的问题是,如何重写(或执行必要的操作)this.href,使其只返回tab-04 编辑 Doug使用这个.getAttribute('href')d
this.href将返回,$(this).attr('href')将仅返回tab-04
你可以在这里看到一个例子
$(this.attr('href')但是,它只返回我所需要的内容
我的问题是,如何重写(或执行必要的操作)this.href,使其只返回tab-04
编辑
Doug使用这个.getAttribute('href')
document.getElementById(yourAnchorId.href.split(“/”)
this.getAttribute('href')
[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));
}
p.S测试 普通Javascript中的href
属性将附加语义。它返回链接将指向的目标URL。无论它是如何编写的(绝对或相对URL)
当您使用$(this).attr(“href”)
时,与任何其他属性一样,您直接检索href
属性的值,因此它将返回HTML中呈现的确切值
对于您的情况,最好使用$(this.attr(“href”)
如果您不想使用jQuery,还有另一种解决方案,只使用普通JavaScript:
this.getAttribute('href')
如果需要href
属性(硬编码到HTML源代码中的属性)的确切值,请使用$(this.attr('href')
)。如果您想要完全限定的URL,请使用this.href
。如果您想使用this.href,因为它的效率很高,然后重写它,让它“做得更多”;“我得出结论,使用this.href更有效。”不,不是真的,但你肯定是。所谓的效率变化(如果它存在的话)被检测到的几率几乎为零。@Malvolio-直接访问DOM属性比使用jQuery的方法要快得多。与首先创建jQuery对象相比,它要快几个数量级。说它不可检测或为零是垃圾。@Malvlio-用户不会看到一个平凡的应用程序有什么不同,但他们会看到更大的应用程序有什么不同。当效率更高的代码编写起来更简单时(特别是当jQuery的一个声明是“写得更少”时),使用低效的代码也是一种糟糕的风格。嘿,Brian,我不能让你的东西正常工作,但是,你能不能提供一个到jsbin或jsfiddle的链接,让我看看你是怎么做到的?Yonathan Garti,你能不能,提供一个到jsbin或jsfiddle的链接,让我看看您是如何做到的?因为我似乎无法让你的东西发挥作用。至少还不支持。并非所有浏览器都支持outerHTML,href属性为。