Jquery
複数の要素の内部テキストを変更しようとしていますが、デバッグ中には jquery オブジェクトのようには見えませんが、tdこのように見えるはずです(間違っている可能性があります)。this
これを行う正しい方法は何ですか?
$('.leg-number').each(function () {
this.html('foo');
});
Jquery
複数の要素の内部テキストを変更しようとしていますが、デバッグ中には jquery オブジェクトのようには見えませんが、tdこのように見えるはずです(間違っている可能性があります)。this
これを行う正しい方法は何ですか?
$('.leg-number').each(function () {
this.html('foo');
});
代わりにこれを試してみてください:
$('.leg-number').html('foo');
これは、目標を達成するためのより短時間で効率的な方法です。明示的な繰り返しなしで、クラス「leg-number」を持つすべての要素の内部htmlを「foo」に設定するようにjQueryに要求するだけです。のような jQuery メソッドのほとんどは要素のセットで機能するため、このような単純なケースで.html()は実際に使用する必要はありません。.each()
バージョンが機能しなかった理由について:jQuery関数で.each()ラップした場合、使用は機能するため、jQueryメソッドを使用できます:this$()
$('.leg-number').each(function () {
$(this).html('foo');
});
thisコールバック内の変数は DOM 要素であり、この要素をラップする jQuery オブジェクトに変換する.each()必要があります。$(this)回答を更新する前に説明した epascarello による回答の説明を参照してください。
のドキュメントを読んでくださいeach()。thisjQuery オブジェクト参照ではなく、DOM Html Element ノードです。jQuery に戻すか、innerHTML直接使用することができます。
$(this).html('foo');
また
this.innerHTML = 'foo';
ドキュメント$(this)は、例での使用を示しています。
変化する:
this.html('foo');
に:
$(this).html('foo');
jQuery 以外のオブジェクトで jQuery メソッドを使用しようとしています。もちろん、これは表のセルに class があることを前提としています.leg-number。