2013-01-21 5 views
8

ページ内で同じIDを複数回使用すると、不正なHTMLが作成されることを理解しています。 jqueryセレクタを使用する場合、idを持つ最初の要素だけが返されますが、私のアプリケーションではこの問題に対処するべきではありません。ページを解析していなくても、ページの悪い練習で同じIDを複数回使用していますか?

私は参照する必要がある要素をすべて持つアイテムビューのリストを持っています。各項目は自分自身へのアクセス権しか持たないので、何かのidセレクタで渡される$elは、(たとえ複数のページがあっても)矛盾を生じません。

私はフィドル、私はそれが安全であるべきと考えているので、私は任意のページ広いパースは致しておりません。このプロジェクトでhere

に何を意味するかをシミュレートしました。なぜ私はこれをしてはいけないのですか?

+1

_You_はページを解析していない可能性がありますが、ブラウザでは確認できません。 – Oded

+1

質問:どうしてですか?あなたに答えてください:[It's doable](http://stackoverflow.com/questions/7262195/several-elements-with-the-same-id-responding-to-one-css-id-selector/7262229#7262229)、しかし、しないでください。 –

+0

あなたはクラスを使用できない理由がありますか? – mattfryercom

答えて

5

現在の要件のみがわかります。

将来的に何が起こるのかわからないので、基準を守り、コード/マークアップを有効にすることをお勧めします。

このアプリケーションでは、jQueryを使用する必要がなくなり、問題が発生する可能性があります。

複数の要素を同じようにスタイリングするソリューションは、CSSクラスを使用することです.IIDを使用するのと同じくらい簡単なので、絶対にそうする必要はありません。

0

はい、それは悪い習慣です。 idは、その要素に対する一意の参照である必要があります。代わりにclassを使用してください。

0

絶対に。 HTML、CSS、およびJavaScriptの仕様は、特定のコードに直面したときにブラウザがどのように動作するかに関する合意です。ブラウザは仕様外のことをしたときに多くの保証をすることはなく、すべてが同意するよりも少なくなります。

Odedは質問に対する彼のコメントで言及したように、ブラウザはあなたのコードからDOMツリーを構築し、それをスタイルし、レンダリングします。したがって、特定のブラウザがそれを行う方法に応じて、同じIDを持つ複数の要素で問題が発生する可能性があります。

なぜリスクがあるのですか? idの代わりにクラス(または何もない)を使用できないインスタンスは考えられません。

関連する問題