2013-04-27 171 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關鍵字只是在鏈接的情況下有效(例如,當你在一個函數中調用它即在鏈接中監聽事件)