9

1つのページで同じIDを複数回使用すると、不正な形式のhtmlが作成されることを理解しています。jqueryセレクターを使用すると、IDを持つ最初の要素のみが返されますが、私のアプリケーションでは、この問題が発生することはありません。

参照する必要のある要素をすべて含むアイテムビューのリストがあります。各アイテムは、何かのIDセレクターを渡すことだけにアクセスできるため、$el(ページに複数ある場合でも)競合は発生しません。

ここでフィドルの意味をシミュレートしました

このプロジェクトでは、ページ全体の解析を行っていないので、安全であると思います。私がこれをすべきではない理由はありますか?

4

4 に答える 4

6

あなたは現在の要件が何であるかを知っているだけです。

将来何が起こるかわからないので、標準と有効なコード/マークアップを維持するのが最善です。

このアプリケーションでは、jQueryを使用しなければならない可能性が非常に高く、問題が発生します。

複数の要素を同じようにスタイリングするための解決策は、CSSクラスを使用することです。IDを使用するのと同じくらい簡単なので、そうしない理由はまったくありません。

于 2013-01-21T19:44:51.670 に答える
3

http://www.w3.org/TR/WCAG20-TECHS/H93.html

http://www.w3.org/TR/html401/struct/global.html#adef-id

ブラウザだけでなく、HTMLドキュメントを読み取るものは他にもあります。

HTML仕様によると、id属性はページ上で一意である必要があります(これは、Webデザイナー/開発者が発明したばかりの基準ではありません)

于 2013-01-21T19:49:03.867 に答える
0

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

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

それで、なぜそれを危険にさらすのですか?IDの代わりにクラス(または何も)を使用できなかった例は考えられません。

于 2013-01-21T20:00:26.497 に答える
0

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

于 2013-01-21T19:49:08.010 に答える