2011-10-20 6 views
0

私は$(this).attr('href')をJQueryで使用してhref = ""属性の文字列を読み取ります。JQueryでhref属性を読み取る方法

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

のFirefoxとChromeが正しく私のコードを返す: 私はリンクのそれらのようなものを持っています。 IE返信:http://127.0.0.1/1

どうすればいいですか?

+2

IEのどのバージョンを使用していますか?私のIE 7 +でうまく動作します参照してください:http://jsfiddle.net/8rdch/ –

+0

あなたは、hrefsは相対的なパスですか?多分、あなたはhrefを '/ 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のVMを起動し、すべてがうまくあります:)

1

は、DOM要素を介して試してみてください。 $(this)[0].href;または$(this)[0].getAttribute("href");

結果はまだ同じであれば、私はあなたが数字で始まらないものを使用することをお勧め。

+1

jQueryオブジェクトにラップする必要はありません。ちょうど 'this.href'はうまく動作し、少しの処理を保存します:) –

+0

それは本当です。説明する方法はわかりませんが、jQueryオブジェクトからDOM要素を抽出する方法をデモしようとしました。そして、...ああ、jQueryでDOM要素をラップしてしまいました。 :D – zvona

0

どのブラウザが使用されているかを確認することをおすすめします。 IEの場合は、現在のドメインが "127.0.0.1"であることを確認してください。そうでなければ、@Saulが提案したことをしてください。

関連する問題