• ベストアンサー

オブジェクトの指定について(JavaScript)

JavaScriptでのオブジェクトの指定について 以下の2通りがあると思いますが、この2つの 方法はどう使い分けたらよいでしょうか? また多くのブラウザへの対応のことも考えると、どちらがよいでしょうか? document.myform.textbox document.getElementById("textbox")

質問者が選んだベストアンサー

  • ベストアンサー
noname#22259
noname#22259
回答No.3

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) { // } }

nihon_no_samurai
質問者

お礼

ありがとうございました!

その他の回答 (4)

noname#19175
noname#19175
回答No.5

ベストなのは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)

nihon_no_samurai
質問者

お礼

ありがとうございました!

  • UKY
  • ベストアンサー率50% (604/1207)
回答No.4

単純にオブジェクトを指定することを考える場合、 document.myform.textbox は比較的古くから使われている方法ですが、DOM 規格にはない方法なので全てのブラウザで使えるわけではありません。 document.getElementById("textbox") は DOM 規格に定められた方法なので、規格に対応したブラウザならどのブラウザでも使えます。

nihon_no_samurai
質問者

お礼

ありがとうございました!

回答No.2

nihon_no_samuraiさん、こんにちは。 document.myform.textbox の方が多くのものに対応できると思います。 getElementByIdだとブラウザの種類やバージョンによって 対応できたり、できなかったりします。 私はIE6以上限定で作っているのでgetElementByIdを使っていますが、 もし、多くのブラウザやバージョンに対応させようと 思っておられるのなら 「ブラウザの判断」と「バージョンの判断」を行い、 そのブラウザに合わせた処理を通すようにした方がよいと思います。 分岐させて ・document.getElementById ・document.layers ・document.myform.textbox など

参考URL:
http://www.umechando.com/tips/23.htm
nihon_no_samurai
質問者

お礼

ありがとうございました!

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.1

テキストボックスを指定する場合は、 document.myform.textbox の方がいいじゃないかと思います。 getElementById は、比較的新しいブラウザでないと使えない可能性があります。 また、name とは別にIDを振る必要があります。 getElementById は、IDを振ったエレメントを直接捕まえられるので便利です。こちらは、そういう場合に使うと良いと思います。

nihon_no_samurai
質問者

お礼

ありがとうございました!

関連するQ&A