我已经尝试添加console.log,但我无法弄清楚。Jquery和对象href混淆
$(this).href
这不是指末端链接位置吗?
正如如果
<a href="test.php">here</a>
和页面,我们都在为test.com 是否$(本).href给我们 “test.php的” 或test.com/test.php?我需要访问这两者中的后者。
任何提示?
我已经尝试添加console.log,但我无法弄清楚。Jquery和对象href混淆
$(this).href
这不是指末端链接位置吗?
正如如果
<a href="test.php">here</a>
和页面,我们都在为test.com 是否$(本).href给我们 “test.php的” 或test.com/test.php?我需要访问这两者中的后者。
任何提示?
$(this)
是一个jQuery对象,并且不具有href
的属性。
您应该使用$(this).attr('href')
或this.href
。
不同的是,$(this).attr('href')
回报'test.php'
, 和this.href
回报'http(s?)://test.com/test.php'
等等...所以我应该摆脱$()围绕这个? – jiexi 2013-04-27 01:06:13
@jiexi如果你想访问dom元素的属性,取决于你需要什么,你不应该用$()来包装它。 – xdazz 2013-04-27 01:08:24
你可以在jQuery集合中获取属性表单元素。也许你可以避免它,但不应该这样做。您可能很想从集合中的第一个项目获取属性,并且jQuery是一个很好的方法。或者你可能已经在一个jQuery循环(每个/地图)。在这种情况下,使用'$(this)。prop('href');'这是一个 [小提琴](http://jsfiddle.net/gillyspy/ehKYq/) – gillyspy 2013-04-27 15:58:57
您需要使用:
$(this).attr("href")
这将返回无论是在标签的href本身:
<a href="test.php">here</a>
会给:
test.php
没有!
当您使用$进行查询时,返回一个jQuery对象。
如果你尝试:
$(this).get(0).href
它能元素对象相对于返回到你的链接,并返回正确的属性。
但是,得到一个属性的更漂亮的方法是什么,例如:
$(this).attr("href");
而且this
关键字只是在链接的情况下有效(例如,当你在一个函数中调用它即在链接中监听事件)
你有没有试过? – xdazz 2013-04-27 00:55:32
我试着将$(this).href改为$(this.href),它给了我其他的错误。 – jiexi 2013-04-27 00:58:11
'this.href'会给你'href'。你为什么要创建一个jQuery对象? – 2013-04-27 00:59:08