• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:HTMLでのid とnameの違い)

HTMLのidとnameの違いと使い方、JavaScriptでの取得方法

このQ&Aのポイント
  • HTMLのidとnameの違いについて説明します。idは各エレメントに個別に与える識別子であり、getElementById()メソッドなどでよく使われます。一方、nameプロパティはフォーム要素などで使用され、値を送信するための識別子として機能します。
  • HTMLでid属性を使用すると、その要素に固有の識別子を与えることができます。JavaScriptでgetElementById()メソッドを使用することで、id名に基づいて要素を取得することができます。一方、HTMLでname属性を使用すると、グループ化やデータの送信などを目的とした要素の識別子を指定することができます。
  • JavaScriptでid属性で指定された要素を取得する際、その要素が他の要素の子要素である場合でも取得することができます。そのため、質問文中の例ではidが指定されたimg要素は、a要素のname属性の値も持つことができます。これはHTMLの仕様上の挙動であり、二つの要素が一体に扱われるわけではありません。

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

  • ベストアンサー
  • ORUKA1951
  • ベストアンサー率45% (5062/11036)
回答No.1

Link_nameを呼び出せば当然のことながら、親であるA要素のname属性の値が参照されます。 nameプロパティではなく、attrですからattribute(属性)です。 idは文書中に一箇所しかありえませんからjavascriptのターゲットとして使用するのが簡単です。 HTMLの属性のnameは、通常は一箇所ですがFORMの内部などでは複数存在し得ます。 <form>  <input type="radio" name="ABC" value="123">  <input type="radio" name="ABC" value="234">  <input type="radio" name="ABC" value="456"> とか・・  気をつけないとならないのは、リンクに関しては、name属性とid属性は同じ名前空間を持つことです。 BUTTON, TEXTAREA, APPLET , SELECT, FORM, FRAME, IFRAME, IMG, A, INPUT, OBJECT, MAP, PARAM, META要素がname属性を持ちえますが、そのうちA、APPLET、FORM、FRAME、 IFRAME、IMG、MAP要素に関しては、idと同じ必要があります。それ以外(BUTTON, TEXTAREA, SELECT, INPUT, OBJECT, PARAM)は、id属性値とname属性値は異なっても良いです。nameは一意である必要は、条件がありますが)ありません。

papashiroSooke
質問者

お礼

早速詳しい回答を頂き、有難うございます。 名前空間とか、なんだか難しそうなものが出て来ましたが、まだよくわからないので自分でも研究してみようと思います。 とりあえず、id は一意の識別子で name は複数要素を持つタグの中で共通に使えるということを覚えておきたいと思います。

関連するQ&A