2010-12-10 80 views

回答

4

某些jQuery方法讓你以這種方式傳遞一個函數。當你這樣做時,它遍歷jQuery對象中的元素。

在這種情況下:

  • i是當前項目的集合中的
  • text該指數是當前的文本內容值(之前對其進行修改)

這是大多數具有此功能的功能模式。

把它看成是這樣的:

$(this).each(function(i) { 
    var i = i; // Redundant, I know. 
    var text = $(this).text(); 
    $(this).text((text == 'Show') ? 'Hide' : 'Show'); 
}); 

編輯:

我想我應該注意的是,在你的具體的例子,因爲只有一個元素,這似乎是爲用於防止需要在處理程序中兩次明確呼叫text(),如下所示:

var $th = $(this); 
$th.text(($th.text() == 'Show') ? 'Hide' : 'Show'); 

我不確定哪個表現會更好。

+0

+1爲快速和正確 – alex 2010-12-10 01:10:17

1

檢查jQuery的API: http://api.jquery.com/text/

的函數傳遞指數(i)和文本(text)。

text()會返回jQuery對象的文本值。

作爲函數傳遞的參數,函數的返回值將被設置爲jQuery對象的文本值。

因此,使用當前文本值調用匿名函數,檢查它是否爲'Show',然後進行相應設置(通過函數返回,然後傳遞給text() -fn)。

相關問題