- ベストアンサー
オブジェクトの指定について(JavaScript)
JavaScriptでのオブジェクトの指定について 以下の2通りがあると思いますが、この2つの 方法はどう使い分けたらよいでしょうか? また多くのブラウザへの対応のことも考えると、どちらがよいでしょうか? document.myform.textbox document.getElementById("textbox")
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
document.myform.textbox document.getElementById("textbox") まず、この例では属性がそもそもちがう。上のはNAME、下のはID フォームへのアクセスは通常は × document.myform.textbox ○ document.forms['formName'].elements['inputName'] が望ましい。 通常のオブジェクト(ID指定)へのブラウザ判別による分岐コードは次のようなもの function getObj(){ if (document.getElementById) { // } else if (document.all) { // } else if (document.layers) { // } }
その他の回答 (4)
ベストなのはxepharosさんの分岐です。 DOMの実装はIE4以上、NN4.7以上(NN4.0以上?)なので、 それ以前のブラウザはDOM(getElementById)は使えません。 document.myform.textboxはNN用で、IE3以下では動かなかったと思います。 この方法が実装されたのは、WinIE5.0/MacIE5.2かIE6からだと思います。 IE3以前:document.all.myform.textbox (記憶が曖昧ですm(_ _)m)
お礼
ありがとうございました!
- UKY
- ベストアンサー率50% (604/1207)
単純にオブジェクトを指定することを考える場合、 document.myform.textbox は比較的古くから使われている方法ですが、DOM 規格にはない方法なので全てのブラウザで使えるわけではありません。 document.getElementById("textbox") は DOM 規格に定められた方法なので、規格に対応したブラウザならどのブラウザでも使えます。
お礼
ありがとうございました!
- papillon68
- ベストアンサー率61% (42/68)
nihon_no_samuraiさん、こんにちは。 document.myform.textbox の方が多くのものに対応できると思います。 getElementByIdだとブラウザの種類やバージョンによって 対応できたり、できなかったりします。 私はIE6以上限定で作っているのでgetElementByIdを使っていますが、 もし、多くのブラウザやバージョンに対応させようと 思っておられるのなら 「ブラウザの判断」と「バージョンの判断」を行い、 そのブラウザに合わせた処理を通すようにした方がよいと思います。 分岐させて ・document.getElementById ・document.layers ・document.myform.textbox など
お礼
ありがとうございました!
- BLUEPIXY
- ベストアンサー率50% (3003/5914)
テキストボックスを指定する場合は、 document.myform.textbox の方がいいじゃないかと思います。 getElementById は、比較的新しいブラウザでないと使えない可能性があります。 また、name とは別にIDを振る必要があります。 getElementById は、IDを振ったエレメントを直接捕まえられるので便利です。こちらは、そういう場合に使うと良いと思います。
お礼
ありがとうございました!
お礼
ありがとうございました!