
name属性とid属性の違いは何なのでしょうか。特にid属性についてよくわかりません。
本を読むと、「これからはDOMというオブジェクトの構造モデルが主流になる。DOMではオブジェクトをid属性で特定できる。」というようなことが載っていました。また、「id属性はname属性と同じようなもの」とも書いてありました。
そこで、あるオブジェクトに対し、"name="ではなく"id="として名前をつけました。そしてそのオブジェクトのidを指定して扱おうとしたのですがうまくいきません。
name=idではないのでしょうか。idはどのように使えばよいのでしょうか。idを利用する際の注意点等を教えていただければと思います。
(私の環境はwindows98、IE6です。)
No.4ベストアンサー
- 回答日時:
formにidを設定してみました。
<html>
<head>
<title>nameとid3</title>
<script language="JavaScript">
<!--
function pushFunc(){
alert("formのid呼出"+document.all.form1.Id_Object.value);
}
// -->
</script>
</head>
<body>
<form id="form1">
<input type="text" name="Name_Object" id="Id_Object" value="9999999999">
<input type="button" value="押す" onClick="pushFunc()">
</form>
</body>
</html>
document.all.form1.Id_Object.value
こうするとアクセスできました。
参考になれば。
No.5
- 回答日時:
NAME属性はSubmit出来ないタグ(TR,TD等)に対して正しく設定できない様です。
ID属性はどのタグにも設定できます。
経験上からですが、Submit出来ないタグに対してもNAME属性は付けられますが、document.getElementsByName("<タグ名>")等のDOM系のメソッドで正しく取得する事が出来ませんでした。
No.3
- 回答日時:
興味を持ったので、以下のようなスクリプトを作ってみました。
<html>
<head>
<title>nameとid</title>
<script language="JavaScript">
<!--
function pushFunc(){
alert("name呼出(all):"+document.all.Name_Object.value);
alert("id呼出(all):"+document.all.Id_Object.value);
alert("name呼出(form):"+document.form1.Name_Object.value);
alert("id呼出(form):"+document.form1.Id_Object.value);
}
// -->
</script>
</head>
<body>
<form name="form1">
<input type="text" name="Name_Object" id="Id_Object" value="9999999999">
<input type="button" value="押す" onClick="pushFunc()">
</form>
</body>
</html>
テキストボックスについては、どちらでも認識してくれるようです。
><input>にidを設定し、JavaScript で呼び出そうとしたのですが、うまくいきませんでした(nameではうまくいきます)。
とありますが、どのオブジェクトに対してどのような処理をしようとしたか教えてください。
この回答への補足
具体的なアドバイスありがとうございます。(返事が遅くなって申し訳ありません。)
確かに、
<input type="text" name="Name_Object" id="Id_Object" value="9999999999">
のように<input>のidは使えました。自分のスクリプトでも問題ありませんでした。
ただ、自分のスクリプトでは、<form>にもnameではなくidを設定していました。それが不具合の原因だと思います。ここでまた新たな疑問が出てくるのですが、<form>にはidが設定できないのでしょうか。それとも、jsの方での指定の仕方がおかしいのでしょうか。
もしよければ、もう少しお付き合いしていただければと思います。
No.2
- 回答日時:
>これはなぜでしょうか。
厳密には同じ物ではないからです。
NAME="" は単にタグに名前をつけるための属性です。
それに対し、ID="" はあくまでシステムIDを割り当てるための属性で、これらは考え方自体が違う物です。
ただ、JavaScript 上では「同じ物として扱った方が都合がいい」という理由で、わざと区別をつけていないだけです。
なので、ID="" の代わりに NAME="" が使えなかったり、逆だったりするのは当然の事です。
HTML上ではこれらは別々のものとして扱われています。
No.1
- 回答日時:
JavaScript 上では特に意識する必要はありません。
ただし、タグによってサポートしているオプションが「NAME=」である場合と「ID=」である場合があり、書き分けなくてはいけません。
同じものとして扱えるのは、JavaScript のインタプリタが ID と NAME を同じ物として扱うからで、データ上は別々の領域に格納されています。
この回答への補足
要素ごとにnameとidを使い分ける必要があるということですね。
そこで、どういう要素にid属性が利用できるのか調べました。するとidは共通属性であり多くの要素に使用できることがわかりました。しかし、実際のところ<input>にidを設定し、JavaScript で呼び出そうとしたのですが、うまくいきませんでした(nameではうまくいきます)。これはなぜでしょうか。
id属性の扱い方か何かが違うのでしょうか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
フォーカスの取得
-
JavaScriptの初歩の質問です。...
-
jquery.validate.jsについて
-
onchangeイベントを強制的に発...
-
javascriptで画像の移動
-
radiobuttonとbuttonを組み合わ...
-
ハイパーリンクを別ウインドウ...
-
チェックボックス可否条件記述...
-
ポップアップメニューAの選択に...
-
文字数を数える際に空白、改行...
-
Perlでメッセージボックス
-
フォームのNAMEを変数に格納し...
-
SELECTの選択状態を、複数のVAL...
-
BackSpaceしたい(QNo.2734284の...
-
コピーすると改行コードがCRと...
-
textareaからiframeにしたら動...
-
動的なtableの値を取得したい
-
月間予定表の作り方
-
複数のテキストボックスでイン...
-
【UWSC】HTML内のある部分を抽...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
【jQuery】input nameの文字列...
-
ラジオボタンでクリックした値...
-
新しくフォルダを作成したい
-
二つの入力欄に、同時に同じ文...
-
Javascriptでのbuttonのname属...
-
name属性のないformタグの、中...
-
動的にTabindexの値を変えたい!
-
cookie使用時にundefinedと表示...
-
jquery.validate.jsについて
-
JavaScriptにて動的に配列を作...
-
GETパラメータの内、空文字のク...
-
ボタンを押すとテキストボック...
-
テキストボックスの値同士を比...
-
ASP.NETでNAME属性を固定にしたい
-
エクセル マクロ submitについて
-
ひ孫に当たるiframe から親ウイ...
-
テキストボックスの入力をリセット
-
firefoxでのフォーカス位置の取得
-
javascriptでファイルを指定し...
-
複数のテキストフィールドを同...
おすすめ情報