【发布时间】:2011-10-22 01:35:58
【问题描述】:
阅读这篇文章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') 将仅返回 tab-04。
您可以在此处查看示例http://jsfiddle.net/UC2xA/1/。
$(this).attr('href') 但是返回的正是我需要的,仅此而已。
我的问题是,我如何重写(或做必要的事情)this.href 以便它只返回 tab-04?
编辑
道格,你是对的
this.getAttribute('href')
【问题讨论】:
-
如果您想要
href属性(硬编码到 HTML 源代码中的属性)的确切值,请使用$(this).attr('href')。如果您想要完全限定的 URL,请使用this.href。 -
如果你打算使用 this.href 因为它的效率,然后重写它让它'做更多';它有点违背了目的。
-
-1 表示“我得出的结论是使用 this.href 更有效。”不,不是,但你肯定是optimizing too early。声称效率变化的可能性(即使存在)几乎为零。
-
@Malvolio - 直接访问 DOM 属性比使用 jQuery 的方法快得多。与首先创建 jQuery 对象相比,它要快几个数量级。说它不可检测或 nil 是垃圾。
-
@Malvlio - 用户不会看到琐碎应用程序的差异,但他们会看到更大的应用程序。当更高效的代码更容易编写时(特别是当 jQuery 的主张之一是“少写”时),使用低效代码也是一种不好的风格。
标签: javascript jquery