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を探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・集中するためにやっていること
- ・テレビやラジオに出たことがある人、いますか?
- ・【お題】斜め上を行くスキー場にありがちなこと
- ・人生でいちばんスベッた瞬間
- ・コーピングについて教えてください
- ・あなたの「プチ贅沢」はなんですか?
- ・コンビニでおにぎりを買うときのスタメンはどの具?
- ・おすすめの美術館・博物館、教えてください!
- ・ことしの初夢、何だった?
- ・【お題】大変な警告
- ・【大喜利】【投稿~1/20】 追い込まれた犯人が咄嗟に言った一言とは?
- ・洋服何着持ってますか?
- ・みんなの【マイ・ベスト積読2024】を教えてください。
- ・「これいらなくない?」という慣習、教えてください
- ・今から楽しみな予定はありますか?
- ・AIツールの活用方法を教えて
- ・【お題】逆襲の桃太郎
- ・自分独自の健康法はある?
- ・最強の防寒、あったか術を教えてください!
- ・【大喜利】【投稿~1/9】 忍者がやってるYouTubeが炎上してしまった理由
- ・歳とったな〜〜と思ったことは?
- ・モテ期を経験した方いらっしゃいますか?
- ・好きな人を振り向かせるためにしたこと
- ・スマホに会話を聞かれているな!?と思ったことありますか?
- ・それもChatGPT!?と驚いた使用方法を教えてください
- ・見学に行くとしたら【天国】と【地獄】どっち?
- ・これまでで一番「情けなかったとき」はいつですか?
- ・この人頭いいなと思ったエピソード
- ・あなたの「必」の書き順を教えてください
- ・14歳の自分に衝撃の事実を告げてください
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
【jQuery】input nameの文字列...
-
JavaScriptにて動的に配列を作...
-
フォームの一部をPOSTで送信で...
-
ラジオボタンでクリックした値...
-
新しくフォルダを作成したい
-
複数のテキストフィールドを同...
-
submitボタン押下時にPOSTされ...
-
テキストエリアをenterキーでフ...
-
VBscript で複数テキストがある...
-
ファイル選択ダイアログが表示...
-
name属性とid属性の違い。DOMの...
-
テキストボックスの値同士を比...
-
tabindex値の設定
-
入力フォームに半角スペース以...
-
エクセル マクロ submitについて
-
テキストボックスの入力をリセット
-
return trueとreturn falseの用...
-
ユーザー入力値の正誤判定をブ...
-
JavaScriptで特定のtdタグにcla...
-
テキストエリア内容からチェッ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
【jQuery】input nameの文字列...
-
新しくフォルダを作成したい
-
テキストボックスの値同士を比...
-
ラジオボタンでクリックした値...
-
name属性のないformタグの、中...
-
二つの入力欄に、同時に同じ文...
-
テキストボックスの入力をリセット
-
Javascriptでのbuttonのname属...
-
ASP.NETでNAME属性を固定にしたい
-
JavaScriptにて動的に配列を作...
-
テキストエリアをenterキーでフ...
-
jquery.validate.jsについて
-
複数のテキストフィールドを同...
-
動的にTabindexの値を変えたい!
-
エクセル マクロ submitについて
-
ファイル選択ダイアログが表示...
-
submitボタン押下時にPOSTされ...
-
ボタンを押すとテキストボック...
-
ひ孫に当たるiframe から親ウイ...
-
入力フォームに半角スペース以...
おすすめ情報