1

これを理解するのに約1時間費やしたので、サニティチェックが必要です!

getRows().each(function() {
    alert(this);     // alerts '[object HTMLTableRowElement]', nothing wrong here
    this.hide();     // row not hidden - wtf?
    alert('hidden'); // no alert - more wtf!
});

hide() を呼び出すと、何が問題になるのでしょうか?

4

3 に答える 3

7

内部.each() thisは DOM 要素 ( ) であり、次のように (メソッドHTMLTableRowElementを持つ) jQuery オブジェクトにするためにラップする必要があります。.hide()

$(this).hide();

HTMLTableRowElementこれがないと、メソッドがないため、メソッド未定義エラーが発生し.hide()ます:)このエラーは、実行がエラーで停止したため、後でアラートが発生しない理由でもあります。

于 2010-06-28T14:54:51.887 に答える
2

試す$(this).hide()

于 2010-06-28T14:55:05.427 に答える
2

前の行でエラーが発生したため、2 番目のアラートは表示されません。に変更します

$(this).hide();

this選択した要素を参照しますが、それにはメソッドがありませんhide。メソッドを持つjQueryオブジェクトにラップする必要がありますhide

于 2010-06-28T14:55:18.470 に答える