2013-07-17 51 views
4

HTML函數內部函數如何工作?

<p>This is a <b>bold</b> paragraph.</p> 
<button>Add</button> 

jQuery的

$("button").click(function(){ 
    $("p").text(function(i,origText){ 
     return "Old text: " + origText + " New text: Hello world! (index: " + i + ")"; 
    }); 
    }); 

我想知道origText不叫外面的功能,但它返回的值。怎麼樣?

demo

+2

潛入jQuery的源代碼! – 2013-07-17 11:58:42

回答

2

的實際方法text接受一個函數作爲參數。傳遞給text的函數可能包含兩個參數,其中第一個接收索引,第二個參數接收原始文本。

+0

text()函數必須包含兩個參數? –

+0

將*傳遞給text方法的函數可能包含兩個參數,在您的情況下爲i和origText。 – Plymouth223

+0

@ C-Link No.不一定。請參閱文檔中的其他方法。您可以將其與各種參數一起使用。 –

0

功能text做了一些關於輸入節點的準備,然後運行由用戶(你的函數)提供的回調函數,並且它傳遞給你的回調這兩個參數(在「某些準備工作」上準備的)步驟。如果你想確切的代碼,你可以閱讀jQuery源碼。

0

簡單:

text(function(whatever){ 
     return whatever; // returns the text what is the text it has. 
    }); 

在您的例子p具有文本:這是一個大膽的段落。

返回任何會返回您的文本:這是一個大膽的段落。