3

jqueryで使用するために、存在しない属性をhtml要素にアタッチすることをお勧めしますか?例えば

<input type="text" valrule="someregexstring" />

次に、jqueryを使用して、valruleという属性を含むすべての要素を選択し、正規表現文字列を解析します。

プログラミング標準とベストプラクティスに関する限り、これは「ノーゴー」ですか?

4

4 に答える 4

6

プレフィックスを使用する必要がありますdata-<myAttribute>。HTML5でサポートされており、他のブラウザはそれを無視し、メソッドを使用してjQueryで簡単にアクセスできます.data()

<input  id="myInput" type="text" data-MySuperMassiveAttribute="Awesome"/>

そして、あなたはそのような情報を次のように取得することができます:

var howAmI = $('#myInput').data('MySuperMassiveAttribute');
alert(howAmI); // now everybody knows how awesome you are ;-)
于 2012-03-13T13:02:37.430 に答える
3

次のような新しい属性には、HTML5データプレフィックスを使用します。

<input type="text" data-valrule="someregexstring" />

その有効なHTML5。

http://ejohn.org/blog/html-5-data-attributes/

于 2012-03-13T12:56:57.010 に答える
2

あなたは間違いなくできます。HTML5ではデータ属性と呼ばれるものが導入されましたが、標準的な方法で非標準の属性を要素に設定できます。

属性名の前に単に接頭辞を付けるだけですdata-

<input type="text" data-valrule="someregexstring" />

これはHTML5で導入されていますが、HTML4のドキュメントでも使用できます。


jQuery(1.4.3+)を使用すると、データ属性に.data() -または.attr()を介してアクセスできます。

于 2012-03-13T12:57:38.780 に答える
0

私は個人的にはそうしません。一部のブラウザは、HTMLを解析するときに「存在しない」属性を無視するため、これらの属性はブラウザページのDOMに保存されません。jQueryセレクターを実行すると、この属性が見つからない場合があります。

HTML5準拠のブラウザでの実行が保証されている場合はdata-、属性にHTML5プレフィックスを使用できます。

<input type="text" data-valrule="someregexstring" />

ただし、古いブラウザで実行している場合は、これでも機能しない可能性があります。たとえば、クライアントのほぼ半数がIE7を使用しており、アップグレードの計画はありません(政府のスピードで動いています)。

于 2012-03-13T12:57:29.850 に答える