人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

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 する方法以外でお願いします.



●質問者: yoski
●カテゴリ:コンピュータ インターネット
✍キーワード:href HTML JavaScript Yahoo まら
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● techmedia-think
●80ポイント ベストアンサー

Firefoxでは、

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

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

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

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

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

◎質問者からの返答

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

すごいすごい。

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

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ