2010-06-28 73 views
1

我需要一個理智檢查,因爲我花了大約一個小時試圖弄清楚這一點!不能讓jQuery隱藏工作

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

調用hide()會被炸出什麼可能是錯誤的?

回答

7

裏面的.each()this是一個DOM元素(HTMLTableRowElement),你需要用它,使其再次jQuery對象(具有.hide()方法)是這樣的:

$(this).hide(); 

如果沒有這個,你」重新得到一個方法未定義的錯誤,因爲HTMLTableRowElement沒有.hide()方法:)這個錯誤也是爲什麼警報沒有在之後發射,因爲執行停止了錯誤。

+0

謝謝。 n00b失敗:) – fearofawhackplanet 2010-06-28 15:13:32

2

嘗試$(this).hide()

2

你沒有得到第二次警報,因爲前行導致了錯誤。它更改爲

$(this).hide(); 

this是指所選擇的元素,但是,這並不具有hide方法。你需要把它包裝在一個帶有hide方法的jQuery對象中。