ホームページ >ウェブフロントエンド >htmlチュートリアル >HTMLのIDとNAMEの違いを詳しく解説

HTMLのIDとNAMEの違いを詳しく解説

高洛峰
高洛峰オリジナル
2017-03-12 18:04:151500ブラウズ

Web 開発を行ったことのあるほぼすべての人が、要素の ID と名前の違いは何なのかを尋ねたことがあると言えます。 ID があるのに、なぜ名前が必要なのでしょうか?! また、最も古典的な答えも得られます。ID は人の ID 番号のようなもので、名前は ID が明らかに一意であり、名前は反復可能です。

先週、ID と Name の問題にも遭遇しました。ページに input type="hidden" を入力し、値を割り当てた後、送信して Request.Params[" を使用するだけでした。 SliceInfo" がバックグラウンドで表示されます。"] しかし、それだけの価値はありません。その後、Name でマークする必要があることに突然気づき、入力に Name='SliceInfo' を追加しました。すべて問題ありませんでした。

最初の段落の ID と名前に対する答えは一般的すぎます。もちろん、クライアント側の HTML 要素の ID である ID については、その説明は完全に正しいです。 Name は実際にはもっと複雑です。Name には多くの用途があるため、完全に ID に置き換えることはできず、ID をキャンセルします。具体的な用途は次のとおりです:

用途 1: 入力、選択、テキストエリア、ボタンなど、サーバーと対話できる HTML 要素のサーバー側インジケーターとして。サーバー側の名前に基づいて、Request.Params を通じて要素によって送信された値を取得できます。
使用 2: HTML 要素の入力 type='radio' グループ化、ラジオ ボタンコントロール が同じグループ化クラスにあることがわかっています、チェック操作はミューテックスです、同時に選択できるラジオは 1 つだけです、このグループ化はベースになっています同じ名前属性でそれを達成するため。
目的 3: ページに アンカー ポイント を作成します。link は、href 属性を使用しない場合に使用します。代わりに、< ;a name="PageBottom"> のように、ページ アンカーを取得します。
使用 4: アプレット、オブジェクト、埋め込み、その他の要素などのオブジェクトとしてのアイデンティティ。たとえば、アプレット オブジェクト インスタンスでは、その名前を使用してオブジェクトを参照します。
使用5: IMG要素とMAP要素を関連付けるとき、IMGのホットスポット領域を定義したい場合は、その属性usemapを使用する必要があるため、usemap="#name"(関連付けられたMAPの名前)要素)。
使用 6: 特定の要素の属性 (attribute、meta、param など)。たとえば、オブジェクトのパラメータ またはメタの を定義します。

明らかに、これらの用途は単純に ID に置き換えることはできません。そのため、HTML 要素の ID と名前の違いは、ID 番号と名前の違いではありません。それらは異なる機能を持っています。

もちろん、HTML 要素の Name 属性は、ページ内で ID としての役割を果たすこともできます。DHTML オブジェクト ツリーでは、document.getElementsByName を使用して、指定されたすべての Name 要素を含むオブジェクト配列を取得できるからです。ページ。 Name 属性には別の問題があります。Name 属性を含むことができる要素を動的に作成する場合、単純に assign element.name = "..." を使用してその Name を追加することはできません。要素を作成すると、'<要素名 = "myName">') 要素に Name 属性が追加されます。これはどういう意味ですか?以下の例を見て理解してください。

メッセージ ボックスに表示される結果は次のとおりです:

メッセージ ボックスに表示される結果は、 です。

Name 属性を初期化する設計は IE の欠陥ではありません。MSDN ではこのようにする必要があると記載されていますが、この設計の原理は何ですか?まだあまり明確には考えていません。

ちなみに、ページ内に同じ ID の HTML 要素が n (n>1) 個ある場合はどうなるでしょうか? DHTML オブジェクトでそれらを参照するにはどうすればよいですか? ASPX ページを使用する場合、aspnet プロセスでは aspx ページの処理時に一意でない ID が許可されないため、このような状況は起こりにくくなります。これは、ページが例外をスローし、正常にレンダリングできないことを意味します。動的ページではなく、ID を繰り返す必要がある場合、IE ではどうすればよいでしょうか?現時点では、引き続き document.getElementById を使用してオブジェクトを取得できますが、取得できるのは、重複した ID を持つオブジェクトのうち、HTML レンダリング中に表示される最初のオブジェクトのみです。このとき、繰り返しIDは参照されると自動的に配列となり、Render順に繰り返しIDを持つ要素が配列内に存在することになります。


以上がHTMLのIDとNAMEの違いを詳しく解説の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。