ホームページ > ウェブフロントエンド > htmlチュートリアル > HTML 要素の ID 属性と Name 属性の違いの詳細な紹介

HTML 要素の ID 属性と Name 属性の違いの詳細な紹介

高洛峰
リリース: 2017-03-20 16:53:34
オリジナル
1512 人が閲覧しました

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

先週、私はページに入力 type="hidden" を入力し、値を割り当てた後、それを送信して Request.Params[" を使用しました。 SliceInfo" がバックグラウンドで表示されます。"] しかし、何があってもそれだけの価値はありません。その後、Name でマークする必要があることに突然気づき、入力に Name='SliceInfo' を追加しました。すべて問題ありませんでした。 HTML 要素の ID 属性と Name 属性の違いの詳細な紹介
最初の段落の ID と名前に対する答えは一般的すぎます。もちろん、クライアント側の
HTML 要素 の ID である ID については、その説明は完全に正しいです。 Name は実際にはもっと複雑です。Name には多くの用途があるため、完全に ID に置き換えることはできず、ID をキャンセルします。具体的な用途は次のとおりです:
用途 1: 入力、選択、テキストエリア、ボタンなど、サーバーと対話できる HTML 要素のサーバー側インジケーターとして。サーバー側の名前に基づいて、Request.Params を通じて要素によって送信された値を取得できます。
使用 2: HTML 要素の入力 type='radio'
Group、ラジオ ボタン コントロールが同じグループ化クラスにあり、チェック操作がミューテックスであることがわかり、同時に選択できるラジオは 1 つだけです。このグループ化は同じ Name 属性に基づいて それを実現します。 目的 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 属性が追加されます。これはどういう意味ですか?以下の例を見て理解してください。

<script language="JavaScript">
var input = document.createElement(&#39;INPUT&#39;);
input.id = &#39;myId&#39;;
input.name = &#39;myName&#39;;
alert(input.outerHTML);
</script>
ログイン後にコピー

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

<script language="JavaScript">
var input = document.createElement(&#39;<INPUT name="myName">&#39;);
input.id = &#39;myId&#39;;
alert(input.outerHTML);
</script>
ログイン後にコピー

    消息框里显示的结果是:
    初始化Name属性的这个设计不是IE的缺陷,因为MSDN里说了要这么做的,可是这样设计的原理什么呢?我暂时没有想太明白HTML 要素の ID 属性と Name 属性の違いの詳細な紹介

    这里再顺便说一下,要是页面中有n(n>1)个HTML元素的ID都相同了怎么办?在DHTML对象中怎么引用他们呢?如果我们使用ASPX页面,这样的情况是不容易发生的,因为aspnet进程在处理aspx页面时根本就不允许有ID非唯一,这是页面会被抛出异常而不能被正常的render。要是不是动态页面,我们硬要让ID重复那IE怎么搞呢?这个时候我们还是可以继续使用document.getElementById获取对象,只不过我们只能获取ID重复的那些对象中在HTML Render时第一个出现的对象。而这时重复的ID会在引用时自动变成一个数组,ID重复的元素按Render的顺序依次存在于数组中。

以上がHTML 要素の ID 属性と Name 属性の違いの詳細な紹介の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート