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()
。this
jQuery オブジェクト参照ではなく、DOM Html Element ノードです。jQuery に戻すか、innerHTML
直接使用することができます。
$(this).html('foo');
また
this.innerHTML = 'foo';
ドキュメント$(this)
は、例での使用を示しています。
変化する:
this.html('foo');
に:
$(this).html('foo');
jQuery 以外のオブジェクトで jQuery メソッドを使用しようとしています。もちろん、これは表のセルに class があることを前提としています.leg-number
。