2

入力タグのクラスにアクセスしているときに問題に直面しています。最初に、次のコード行を使用していましたが、false が返されました。

$('#metaField_932.value').hasClass('hasDatepicker')

次に、次のコード行を使用すると、trueが返されました

$("input[id='metaField_932.value']").hasClass('hasDatepicker')

なぜこれが起こっているのか誰でも説明できますか?

注: コードには ID の重複はありません。

4

5 に答える 5

4

最初の行は、次のような HTML 要素を探しています。

<input id="metaField_392" class="value">

一方、2 番目のものは、実際の HTML 要素により似たものを探しています。

<input id="metaField_392.value">

が含まれるセレクターは.、特定の を含む要素を検索することを示しますclass

これを回避するには、2 番目のセレクターを使用するか、単純に要素の からピリオドを削除することをお勧めしますid

于 2013-10-31T08:21:26.367 に答える
1

notを検索していて、前に a like を検索 しているため、エスケープ.します。\idclassselector.class

$("input[id='metaField_932\.value']").hasClass('hasDatepicker')

または

$('#metaField_932\\.value').hasClass('hasDatepicker')
于 2013-10-31T08:21:20.317 に答える
1

セレクターは idと class#metaField_932.valueを持つ要素を検索します。他の人の回答で与えられた文字をエスケープする必要があります。metaField_932value.

于 2013-10-31T08:22:53.463 に答える
0

最初に、最初のコードで jquery に渡したセレクターを分析します。

#metaField_932.value

よく見ると、 id がmetaField_932classである要素を選択するということvalueです。そのような要素が存在しないため、最初のコードは何も返しません

属性セレクターであり、そのような混乱がないため、コードの 2 番目の部分が機能します。

F0G がすでに説明しているように、jQuery がセレクター全体を ID として解釈できるように.withをエスケープする必要があります。\\

したがって$("#metaField_932\\.value").hasClass('hasDatepicker')、動作します

于 2013-10-31T08:25:41.123 に答える