中のidとnameの違いの実例コード

4796 ワード

私たちはあるコードでその中の微妙な違いを分析できます。 method=「post」 action=「」 name=「demoform」 IEブラウザでは、このテキスト枠のオブジェクトにいくつの方法で索引ができますか?区別のために、NAMEとIDを異なる値に設定しました。 o Demo 2. demoform.o Demo 3. document.all.oDemo 4. document.all.demoform.o Demo 5. document.forms[0].oDemo 6. document.forms['demoform].oDemo 7. document.forms['demoform].childNodes[0]8. document.forms['demoform].elements[0]9. Dcument.getElemenntById('oDemo 2')以上の9つのインデックス方法はIE 6の中で全部戻り値テストに合格しましたが、注意すべきは最後の一つです。IE 6の中でインデックスの対象をdocument.getElementById('o Demo')と書きました。ブラウザも正確に対象にインデックスできます。本当に怖いです。続いて問題が来ました。このコードをMoziaに置きます。 Firefox 1.0でもう一回実行します。第7の方法だけが「undefined」に戻ります。他の方法は正確にオブジェクトにインデックスすることができますが、第3、4の方法はdocument.allというIE専用オブジェクトを使用しています。FF 1.0は正しい値を返しますが、コンソールでは標準ではない属性を警告しています。 document.all。使用してください W 3 C の標準形式 Dcument.getElemenntById() 。 次に、HTMLテキストのタイプを厳密に定義し、ソースコードの先頭に<を追加します。DOCTYPE HTML PUBLIC "-//W 3 C//DMD HTML 4.01 Transitional/EN" "http://www.w3.org/TR/html4/loose.dtd>HTMLテキストをHTML 4.01標準に従って解析しても、IE 6では全て戻り値テストに合格しますが、Mozilaでは Firefox 1.0里の面倒は大きくなりました。第3、4の方法は何の戻り値もありません。コンソールでエラーメッセージを送りました。エラー: document.all ハイ no。 properties ,7番目の方法は依然として「undefined」に戻ります。小さい 結nameはもともと標識のために使われていましたが、規格によってはidで元素を識別することを提案しています。以下はnameしか使えません。      1.    フォーム(form)のコントロール名は、IDではなくコントロールのnameで送信されます。多くのnameが同時に複数のコントロールに対応しているため、例えばcheckboxとradio、idは全文の中で唯一でなければなりません。またブラウザは、nameに基づいてサーバに送信するrequestを設定します。したがって、IDを使えば、サーバーはデータを得ることができません。      2.    frameとwindowの名前は他のframeまたはwindowでtargetを指定するために使われます。   以下はidしか使えません      1.    labelとformコントロールの関連、                  for属性は、labelに関連する要素のidを指定していますが、nameで代替できません。      2.    CSSの要素選択メカニズムは、萋MyIdのようにアプリケーションスタイルの要素を指定しています。nameで代えることはできません。      3.    スクリプトからオブジェクトを取得:      IEは、スクリプト内で直接にID(nameではなく)でこのidの識別の対象を参照することをサポートする。例えば上記のinputは、スクリプトに入力された内容を直接MyInput.valueで取得することができます。      DOMを使うなら、document.getElementById.valueで、nameを使うなら、まずコントロールを含むform、例えばdocument.forms[0]を得て、formからnameを参照してください。計算してサーバに送る値です。   nameとidの他の違いは:   IDはマークの要求に適合しています。例えば、大文字と小文字は敏感です。下線は含まれない方がいいです。nameは基本的には何の要求もなく、数字を使ってもいいです。CSSでこのリンクの滞在スタイルを制御します。このように書いてもいいです。 #m_ブログ div.opt a:hover{カラー:菗D 57813} または #myLink:hover{color=0000 ff D 57813}NAMEは主にインタラクティブウェブページに適用され、フォームはあるサーバー側のスクリプトに提出された後、変更処理量を受信して使用する。ソースコードの規範性と互換性の観点から、クライアントスクリプトにあるオブジェクトをインデックスするには、document.getElementById()方法を使用して、なるべく直接NAMEの値を使用しないでください。もちろん、互換性を考慮しないなら、上記9つの方法はIEで実行できます。添付:テストソースコード<!DOCTYPE HTML PUBLIC "-//W 3 C//DMD HTML 4.01 Transitional/EN" "http://www.w3.org/TR/html4/loose.dtd><>