2011-10-20 112 views
0

我在JQuery中使用$(this).attr('href')來讀取href =「」屬性中的字符串。 我有那些類型的鏈接:如何使用JQuery讀取href屬性

<a href="1"></a> 
<a href="2"></a> 
<a href="3"></a> 

Firefox和Chrome返回我的代碼正確。 IE回報我:http://127.0.0.1/1

我該怎麼辦?通過DOM元素

+2

您使用的是什麼版本的IE?我的IE 7+工作正常,請參閱:http://jsfiddle.net/8rdch/ –

+0

你的hrefs是相對路徑?也許你可以將hrefs替換爲'/ 1','/ 2','/ 3' –

+0

我使用的是Internet Explorer 8.0.76 – Dail

回答

3

當您訪問本機屬性時,不需要使用attr函數。你可以直接使用錨元素的屬性來獲取路徑(即不帶域或查詢字符串的HREF)

基本上是:this.pathname

有一個位瀏覽器之間的不一致的(有些人會表現出領先的正斜槓在pathname和其他人不會)。爲了解決這個問題,剛剛擺脫任何潛在領先的斜線:

this.pathname.replace(/^\//,'')

工作的示例:http://jsfiddle.net/jonathon/3ET6p/

即使您選擇其他的答案,我建議你在對象上使用本地.href


正如對此的額外注意。我啓動了一個IE6虛擬機,一切都很好:)

1

嘗試: $(this)[0].href;$(this)[0].getAttribute("href");

如果結果還是一樣,我建議你使用的東西不能用數字開始。

+1

你甚至不需要將它包裝在jQuery對象中。只是簡單的'this.href'將工作,並保存一點處理:) –

+0

這是真的。我不知道如何解釋,但我嘗試演示如何從jQuery對象中提取DOM元素。然後......呃,最後用jQuery封裝一個DOM元素,然後......好吧,返回它。 :d – zvona

0

我建議檢查使用哪個瀏覽器。如果是IE,請檢查當前域是否爲「127.0.0.1」。如果不是這樣,按照薩索的建議。