私はjQueryを使用していますが、IDはページ全体で一意でなければならないのでしょうか?私が知っているクラスは、あなたが好きなだけ何度でも繰り返すことができます。IDについてはどうですか?IDはページ全体で一意でなければならないのですか?
答えて
はい、一意である必要があります。
HTML4:
http://www.w3.org/TR/html4/struct/global.html
セクション7.5.2:
ID =名[CS] この属性は、要素に名前を割り当てます。この名前は、ドキュメント内で一意である必要があります。
HTML5:
http://www.w3.org/TR/html5/dom.html#the-id-attribute
id属性は、その要素の一意の識別子(ID)を指定します。 の値は、要素のホームサブツリー のすべてのIDの中で一意でなければならず、少なくとも1文字を含む必要があります。値には、空白文字が含まれていてはなりません( )。
はい、IDは一意です。クラスはそうではありません。
MDN https://developer.mozilla.org/en/DOM/element.id
からので、私は良い...
IDは常に一意でなければならないことと思います。
皆がユニーク識別番号(例:社会保障番号)を持っており、多くの人々は基本的にIDの全体のポイントの社会クラス
です。 :) IDは特定であり、ページごとに1回しか使用できません。クラスは喜んで使用できます。
ブラウザはこれまで寛容であった(何年も前はCSSだった)、IDを複数回使用することができました。彼らはより厳しくなってきました。
ただし、IDは一意であり、一度だけ使用されます。
cssフォーマットを複数回使用する必要がある場合は、CLASSを使用してください。
Javascriptでは、IDを使用して1つの要素のみを参照できます。 document.getElementById
およびjQueryの$
セレクタは、一致する最初の要素のみを返します。したがって、複数の要素で同じIDを使用することは意味をなさない。
https://softwareengineering.stackexchange.com/questions/127178/two-html-elements-with-same-id-attribute-how-bad-is-it-reallyに同じ質問に対する素晴らしい回答があります。あなたが(それは悲しいです)この問題を回避する必要がある場合は、次のことができ
:
One tidbit not mentioned aboveは、いくつかの同一
id
の1が存在する場合と同じページ(それが標準に違反していても、起こる)であります$("*#foo")
を使用すると、jQueryはgetElementsByTagName
を使用し、すべての一致する要素のリストを返します。
技術的には、HTML5の規格IDは、ページ上で一意でなければなりませんによって - https://developer.mozilla.org/en/DOM/element.id
しかし、私は、これは完全に無視され、それが動作する非常にモジュラーウェブサイトを、上働いてきました。それは理にかなっています - 最も驚くべき部分です。
私たちは、たとえば「コンポーネント化」
それを呼び出すには、ウィジェットのいくつかの種類は、あなたのページ、上のコンポーネントを持っているかもしれません。 "ok-button"などの独自のIDを内部に持っています
これらのウィジェットは、技術的には無効なHTMLを持つことが多くあります。しかし、それはに完璧な理にかなっていることがあるかもしれないそれ自身のルートから検索するjqueryのを使用している場合、それらそれぞれ、内部的に、自分の[OK]ボタンなどを参照するようにあなたのウィジェットをコンポーネント:$widgetRoot.find("#ok-button")
これが私たちのために働く、IDは技術的に考えましたユニークでないと一度は使用しないでください。
以上の土地を選定として、それがないので、背教ですので、でもYouTubeは、それを行う
あなたは可能性を感じた場合- 1. パスワードフィールドは一意でなければなりませんか?
- 2. Qtのオブジェクトの名前は一意でなければならないのですか?
- 3. 一意の鍵はどのくらいの長さで安全で確実に一意でなければなりませんか?
- 4. なぜ100vhはページ全体を埋めないのですか?
- 5. パッケージがあれば、そのアーティファクトIDはどんなものでなければならないのですか?
- 6. C++構造体配列 - ポインタでなければならないのはなぜですか?
- 7. "TypeError:pygame.Surfaceでなければならない、タプルではない"何をすればいいですか? (pygameのスターター)
- 8. 「trustAnchorsパラメータは空でなければならない」とはどういう意味ですか?
- 9. 「入力はリストでなければならない」とはどういう意味ですか?
- 10. YANG、葉はリスト内で一意でなければなりません
- 11. JQueryはIDでinnerHtmlだけでなく、全体のフォームを取得します
- 12. イオン1、ページ全体ではなくページの一部をリロードする方法
- 13. Joomla、Joomfishのページ全体の翻訳だけでなく、
- 14. 1つのページだけでなく、サイト全体のsetTimeout
- 15. 「あなたがたぶん「チャット」しなければならないのはどういう意味ですか?
- 16. なぜデリゲートは静的でなければならないのですか?
- 17. なぜASP.NET MVCはWebアプリケーションでなければならないのですか?
- 18. IQuery NHibernate - それはリストでなければならないのですか?
- 19. 一般的なことは、関数でなければならないということですか?
- 20. 背景画像がページ全体をカバーしないのはなぜですか?
- 21. 単体テストは、テストを嘲笑しなければならないことを意味しますか?
- 22. Jqueryが一意のIDを認識しないのはなぜですか?
- 23. C++:new-expressionの配列サイズは一定でなければならない
- 24. Typeaheadは一次元の配列でなければならない
- 25. 私の構造体をポインタとして宣言しなければならないのはなぜですか?
- 26. this.objectNameの代わりにExt.getCmp( 'id')を使用しなければならないのはなぜですか?
- 27. コントローラだけでなく、Railsアプリケーションの全体をプロファイルするにはどうすればいいですか?
- 28. react redux storeのスライスはオブジェクトでなければならないのですか?
- 29. Windows AzureのWebRoleはステートレスでなければならないのですか?
- 30. ASP.NET MVC:プライベートWebページのGET要求は非破壊でなければならないのですか?
そうする。 –
あなたはIDの定義をオーバーライドすることはできませんIDは一意であるため、id属性は、一般的に一度だけ使用される –
誰もこの質問に投票しないのはなぜですか?私はそれはシンプルですが、それは投票の理由ではない、あなたはちょうど上に移動する必要があります... – nodrog