我在應用程序中看到這個和它的作品很好,但我不明白它是如何工作....的功能是什麼(我,文本)部分做的和他們是什麼函數中的兩個參數是什麼?它如何工作?
其使用here
$(this).text(function(i,text) { return (text == 'Show') ? 'Hide' : 'Show'; });
我在應用程序中看到這個和它的作品很好,但我不明白它是如何工作....的功能是什麼(我,文本)部分做的和他們是什麼函數中的兩個參數是什麼?它如何工作?
其使用here
$(this).text(function(i,text) { return (text == 'Show') ? 'Hide' : 'Show'; });
某些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');
我不確定哪個表現會更好。
檢查jQuery的API: http://api.jquery.com/text/
的函數傳遞指數(i
)和文本(text
)。
text()
會返回jQuery對象的文本值。
作爲函數傳遞的參數,函數的返回值將被設置爲jQuery對象的文本值。
因此,使用當前文本值調用匿名函數,檢查它是否爲'Show'
,然後進行相應設置(通過函數返回,然後傳遞給text()
-fn)。
+1爲快速和正確 – alex 2010-12-10 01:10:17