javascript の質問です。つまらない質問だったらすいません。


<A> タグ内の href 属性をそのまま取得する方法を教えてください。

<a href="http://www.yahoo.co.jp" id="yahoo">Yahoo</a>

上記のようなHTMLで、

// A タグの要素を取得して
var elm = document.getElementById("yahoo");
// これは最後に / が付く
alert(elm.href);
// これでも最後に / が付く
alert(elm.getAttribute("href"));

いずれも

http://www.yahoo.co.jp/

と末尾に / が付いたものが取得されてしまいます。

末尾に / を付けるのが正しい、云々の論理は抜きにして、href で設定されている「http://www.yahoo.co.jp」をそのまま取得する良い方法はありませんでしょうか。

※elm.parentNode.innerHTML を parse する方法以外でお願いします.

回答の条件
  • 1人2回まで
  • 登録:
  • 終了:2008/06/10 11:45:23
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

ベストアンサー

id:techmedia-think No.1

回答回数46ベストアンサー獲得回数13

ポイント80pt

Firefoxでは、

alert(elm.getAttribute("href"));

だと最後のスラッシュは無く、IEの場合は付いたままのようですね。

alert(elm.getAttribute("href", 2));

といった形でgetAttributeの第二引数に2を渡すとIEでもスラッシュが付加されないアドレスが取得できるようです。第二引数を指定しないとIEの場合はhrefの値がデコードされ、第二引数に2を指定するとデコードされない生データが取得できるようです。

もし、IEだけでなくクロスブラウザへの対応が必要であれば、クロスブラウザに対応したprototype.js等のJavaScriptライブラリを経由して取得する方が良いかと思います。

id:yoski

うわ、ほんとだ。こんなパラメータがあったとは・・・

すごいすごい。

助かりました。ありがとうございます!

2008/06/10 11:42:00

コメントはまだありません

この質問への反応(ブックマークコメント)

トラックバック

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません