<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 する方法以外でお願いします.
Firefoxでは、
alert(elm.getAttribute("href"));
だと最後のスラッシュは無く、IEの場合は付いたままのようですね。
alert(elm.getAttribute("href", 2));
といった形でgetAttributeの第二引数に2を渡すとIEでもスラッシュが付加されないアドレスが取得できるようです。第二引数を指定しないとIEの場合はhrefの値がデコードされ、第二引数に2を指定するとデコードされない生データが取得できるようです。
もし、IEだけでなくクロスブラウザへの対応が必要であれば、クロスブラウザに対応したprototype.js等のJavaScriptライブラリを経由して取得する方が良いかと思います。
うわ、ほんとだ。こんなパラメータがあったとは・・・
すごいすごい。
助かりました。ありがとうございます!