2013-04-27 86 views
0

我已经尝试添加console.log,但我无法弄清楚。Jquery和对象href混淆

$(this).href 

这不是指末端链接位置吗?

正如如果

<a href="test.php">here</a> 

和页面,我们都在为test.com 是否$(本).href给我们 “test.php的” 或test.com/test.php?我需要访问这两者中的后者。

任何提示?

+2

你有没有试过? – xdazz 2013-04-27 00:55:32

+0

我试着将$(this).href改为$(this.href),它给了我其他的错误。 – jiexi 2013-04-27 00:58:11

+0

'this.href'会给你'href'。你为什么要创建一个jQuery对象? – 2013-04-27 00:59:08

回答

3

$(this)是一个jQuery对象,并且不具有href的属性。

您应该使用$(this).attr('href')this.href

不同的是,$(this).attr('href')回报'test.php', 和this.href回报'http(s?)://test.com/test.php'

+0

等等...所以我应该摆脱$()围绕这个? – jiexi 2013-04-27 01:06:13

+0

@jiexi如果你想访问dom元素的属性,取决于你需要什么,你不应该用$()来包装它。 – xdazz 2013-04-27 01:08:24

+0

你可以在jQuery集合中获取属性表单元素。也许你可以避免它,但不应该这样做。您可能很想从集合中的第一个项目获取属性,并且jQuery是一个很好的方法。或者你可能已经在一个jQuery循环(每个/地图)。在这种情况下,使用'$(this)。prop('href');'这是一个 [小提琴](http://jsfiddle.net/gillyspy/ehKYq/) – gillyspy 2013-04-27 15:58:57

0

您需要使用:

$(this).attr("href") 

这将返回无论是在标签的href本身:

<a href="test.php">here</a> 

会给:

test.php 
0

没有!

当您使用$进行查询时,返回一个jQuery对象。

如果你尝试:

$(this).get(0).href 

它能元素对象相对于返回到你的链接,并返回正确的属性。

但是,得到一个属性的更漂亮的方法是什么,例如:

$(this).attr("href"); 

而且this关键字只是在链接的情况下有效(例如,当你在一个函数中调用它即在链接中监听事件)