3

OK、私はこのようなHtml要素を持っています

<input type="button" id="harhar"/><label for="harhar">Im only for Id</label>

id ではなくクラスを使用して要素にラベルを参照することは可能ですか? このように

<input type="button" class="harhar"/><label for="harhar">Refer me as a class</label>

これは可能ですか?

注: これは、サーバー側で動的な Jquery UI ボタン​​を作成するためのものです。そのため、クラスを参照する必要があります。

4

4 に答える 4

2

いいえ、ラベルは常に ID を参照します。ID のみがドキュメント内で一意である必要があるためです。これはまさにラベルが必要とするものです。

動的であれば予測可能な ID を使用してボタンを作成するようにフォールバックする必要があります。

于 2012-05-21T06:28:16.903 に答える
2

html 仕様によると、for属性で要素 ID を使用する必要があります。ただし、仕様には次のようにも記載されています。

[for attribute is] が存在しない場合、定義されているラベルは要素のコンテンツに関連付けられます。

したがって、html コードを再配置することで、ラベルを入力に関連付けることができる場合があります。

于 2012-05-21T06:28:19.003 に答える
2

いいえ、class と for を一緒に一致させることはできません。ただし、id および for が他の for および id 属性と一意に異なるようにするためにできることがあります。

サーバー側で要素を生成する場合は、for ループまたはその他のループ構造を使用して、id/for 属性を列挙します。

<input type="button" id="harhar_1"/><label for="harhar_1">Im only for Id</label>
<input type="button" id="harhar_2"/><label for="harhar_2">Im only for Id</label>
<input type="button" id="harhar_3"/><label for="harhar_3">Im only for Id</label>

このように HTML を生成できれば、一意の ID を使用しながら、ラベルと値を一致させることができます。

さらに、CSS やセレクターで簡単に参照できるように、すべての要素に共通のクラス名を適用することを妨げるものは何もありません。

<input class="harhar" type="button" id="harhar_1"/><label for="harhar_1">Im only for Id</label>
<input class="harhar" type="button" id="harhar_2"/><label for="harhar_2">Im only for Id</label>
<input class="harhar" type="button" id="harhar_3"/><label for="harhar_3">Im only for Id</label>

これにより、簡潔な CSS ルールを記述したり、DOM をすばやく簡単に操作したりするために必要なフックが提供されます。

于 2012-05-21T06:28:45.120 に答える
1

仕様ラベルに従って、 は ID と一致する必要があります。

回避策は、ラベルが対象の要素をラップするようにすることです。ただし、スクリーン リーダーなどでは最適に機能しません ( titleinput 要素の属性として同じテキストを使用できます)。

<label><input type="button" title="I am the same label" />
     I know change how this's styled...</label>
于 2012-05-21T06:33:11.077 に答える