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を探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・【大喜利】【投稿~11/22】このサンタクロースは偽物だと気付いた理由とは?
- ・お風呂の温度、何℃にしてますか?
- ・とっておきの「まかない飯」を教えて下さい!
- ・2024年のうちにやっておきたいこと、ここで宣言しませんか?
- ・いけず言葉しりとり
- ・土曜の昼、学校帰りの昼メシの思い出
- ・忘れられない激○○料理
- ・あなたにとってのゴールデンタイムはいつですか?
- ・とっておきの「夜食」教えて下さい
- ・これまでで一番「情けなかったとき」はいつですか?
- ・プリン+醤油=ウニみたいな組み合わせメニューを教えて!
- ・タイムマシーンがあったら、過去と未来どちらに行く?
- ・遅刻の「言い訳」選手権
- ・好きな和訳タイトルを教えてください
- ・うちのカレーにはこれが入ってる!って食材ありますか?
- ・おすすめのモーニング・朝食メニューを教えて!
- ・「覚え間違い」を教えてください!
- ・とっておきの手土産を教えて
- ・「平成」を感じるもの
- ・秘密基地、どこに作った?
- ・【お題】NEW演歌
- ・カンパ〜イ!←最初の1杯目、なに頼む?
- ・一回も披露したことのない豆知識
- ・これ何て呼びますか
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・これ何て呼びますか Part2
- ・許せない心理テスト
- ・この人頭いいなと思ったエピソード
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・好きなおでんの具材ドラフト会議しましょう
- ・餃子を食べるとき、何をつけますか?
- ・あなたの「必」の書き順を教えてください
- ・ギリギリ行けるお一人様のライン
- ・10代と話して驚いたこと
- ・大人になっても苦手な食べ物、ありますか?
- ・14歳の自分に衝撃の事実を告げてください
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
【jQuery】input nameの文字列...
-
ラジオボタンでクリックした値...
-
エクセル マクロ submitについて
-
Javascriptでのbuttonのname属...
-
submitボタン押下時にPOSTされ...
-
入力フォームに半角スペース以...
-
新しくフォルダを作成したい
-
動的にTabindexの値を変えたい!
-
フォーム内の同一名のエレメン...
-
複数のテキストフィールドを同...
-
onchangeイベントを強制的に発...
-
value内に変数を入れたい
-
return trueとreturn falseの用...
-
<JavaScript>tableタグを入力不...
-
<input>の選択肢をプルダウンメ...
-
ラジオボタンにタブインデック...
-
tabindexの取得
-
どのボタンがクリックされたの...
-
ラジオボタンのチェックが外れ...
-
confirmのOK・キャンセルを押し...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
【jQuery】input nameの文字列...
-
新しくフォルダを作成したい
-
ラジオボタンでクリックした値...
-
テキストボックスの入力をリセット
-
二つの入力欄に、同時に同じ文...
-
Javascriptでのbuttonのname属...
-
ASP.NETでNAME属性を固定にしたい
-
submitボタン押下時にPOSTされ...
-
複数のテキストフィールドを同...
-
JavaScriptにて動的に配列を作...
-
テキストボックスの値同士を比...
-
jqueryでtextareaのcols、rows...
-
name属性のないformタグの、中...
-
動的にTabindexの値を変えたい!
-
ひ孫に当たるiframe から親ウイ...
-
javascriptの値をformのinput h...
-
テキストエリアをenterキーでフ...
-
ボタンを押すとテキストボック...
-
cookie使用時にundefinedと表示...
-
jquery.validate.jsについて
おすすめ情報