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で質問しましょう!
似たような質問が見つかりました
- HTML・CSS ボタンをクリックした時に、入力フォームのすぐ下部に、「入力欄が空白です」というテキストメッセージが表 1 2022/04/27 16:25
- JavaScript sessionStorageを調べています。 1 2023/06/20 12:41
- JavaScript jqueryを使ったスムーススクロールのコードを書いたのですが、HTMLコード内にある、a butt 2 2022/04/14 10:59
- AJAX JavascriptからPHPへのAjax通信でnullが返ってくる 3 2022/08/03 22:00
- JavaScript gasについて 1 2022/05/31 21:51
- JavaScript Javascript初心者|jQueryの.val()で値を取得し複数の要素を連結させる方法知りたい 2 2022/06/02 12:06
- HTML・CSS CSS のみのタブ切り替えについて 1 2023/01/11 16:47
- Access(アクセス) Dlookupにエラーがでてしまう 1 2022/10/31 14:35
- Oracle sqlで質問です。 aテーブルとbテーブルがあり、下記のsqlで取得したidとnameに一致しないレ 1 2022/04/20 20:34
- MySQL mysqlの結合について教えてください 1 2022/05/19 15:13
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・「みんな教えて! 選手権!!」開催のお知らせ
- ・漫画をレンタルでお得に読める!
- ・「黒歴史」教えて下さい
- ・2024年においていきたいもの
- ・我が家のお雑煮スタイル、教えて下さい
- ・店員も客も斜め上を行くデパートの福袋
- ・食べられるかと思ったけど…ダメでした
- ・【大喜利】【投稿~12/28】こんなおせち料理は嫌だ
- ・前回の年越しの瞬間、何してた?
- ・【お題】マッチョ習字
- ・モテ期を経験した方いらっしゃいますか?
- ・一番最初にネットにつないだのはいつ?
- ・好きな人を振り向かせるためにしたこと
- ・【選手権お題その2】この漫画の2コマ目を考えてください
- ・2024年に成し遂げたこと
- ・3分あったら何をしますか?
- ・何歳が一番楽しかった?
- ・治せない「クセ」を教えてください
- ・【大喜利】【投稿~12/17】 ありそうだけど絶対に無いことわざ
- ・【選手権お題その1】これってもしかして自分だけかもしれないな…と思うあるあるを教えてください
- ・集合写真、どこに映る?
- ・自分の通っていた小学校のあるある
- ・フォントについて教えてください!
- ・これが怖いの自分だけ?というものありますか?
- ・スマホに会話を聞かれているな!?と思ったことありますか?
- ・それもChatGPT!?と驚いた使用方法を教えてください
- ・見学に行くとしたら【天国】と【地獄】どっち?
- ・これまでで一番「情けなかったとき」はいつですか?
- ・この人頭いいなと思ったエピソード
- ・あなたの「必」の書き順を教えてください
- ・10代と話して驚いたこと
- ・14歳の自分に衝撃の事実を告げてください
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
二つの入力欄に、同時に同じ文...
-
ASP.NETでNAME属性を固定にしたい
-
doPostBack 関数について
-
【jQuery】input nameの文字列...
-
ファイル選択ダイアログが表示...
-
テキストボックスの入力をリセット
-
JavaScriptにて動的に配列を作...
-
エクセル マクロ submitについて
-
新しくフォルダを作成したい
-
テキストボックスの値同士を比...
-
javascriptとPHPで入力フォーム...
-
ラジオボタンでクリックした値...
-
return trueとreturn falseの用...
-
Selectボックスの幅を自動で広...
-
プルダウン 項目が多いので先頭...
-
<input>の選択肢をプルダウンメ...
-
フォーム内で記入したクエリ送...
-
hiddenのvalueの値を変えたい
-
onclickが動作しない
-
[Javascript]セル内の文字列の...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
【jQuery】input nameの文字列...
-
新しくフォルダを作成したい
-
Javascriptでのbuttonのname属...
-
ラジオボタンでクリックした値...
-
二つの入力欄に、同時に同じ文...
-
ASP.NETでNAME属性を固定にしたい
-
cookie使用時にundefinedと表示...
-
JavaScriptにて動的に配列を作...
-
テキストボックスの入力をリセット
-
name属性のないformタグの、中...
-
複数のテキストフィールドを同...
-
GETパラメータの内、空文字のク...
-
動的にTabindexの値を変えたい!
-
テキストボックスの値同士を比...
-
ファイル選択ダイアログが表示...
-
submitボタン押下時にPOSTされ...
-
ボタンを押すとテキストボック...
-
入力フォームに半角スペース以...
-
エクセル マクロ submitについて
-
jquery.validate.jsについて
おすすめ情報