0

「キーダウン」で関数をトリガーする必要がある入力テキストのタイプがあります。このタイプの入力を識別するために、ID #autocomplete を使用しました。そう

$('#autocomplete').keydown(function(){
   //function autocomplete
});

問題は、この入力が同じページに 2 回あるため、jquery は最初の ID を検索し、2 番目の ID を無視することです。(私は古いjqueryバージョン1.3を使用しています)。

代わりに$("input#autocomplete")を使用して解決しました。動作しますが、ベストプラクティスですか? IDは一意でなければならないと思います。代わりにクラスまたは名前を使用することもできますが、どちらもコードの他の部分に影響を与えます (デザインに対するクラス、フォーム パラメータを受け取るサーバー部分に対する名前)。

最適なソリューションはどれですか?

4

2 に答える 2

2

およびへの影響が疑わしい場合、classまたはnameその影響が原因である場合は、いつでも属性を使用できます。designserver

<input data-id="my-id"/>

そして、そのように選択します

$("[data-id=my-id]")

プレフィックスを持つカスタム属性はdata-、HTML5 の標準です。

于 2012-08-24T11:14:32.520 に答える
2

Anは確かに全体で一意idである必要があります。本当に一意にできない場合は、代わりにセレクターを使用するか、 に a を追加してからとして選択します。documentclassinput$(.class)

id 属性は、一意の識別子を要素に割り当てます (これは SGML パーサーによって検証される場合があります)。

于 2012-08-24T11:12:34.967 に答える