2013-03-11 79 views
5

這只是一個快速的(我希望)。

我最近一直在爲jQuery UI的對話框頁面來看看使用對話框http://jqueryui.com/dialog/#modal-form內部形狀,我注意到一些代碼,之前我從來沒有見過:

var allFields = $([]).add(#input1).add(input2).add(input3).... 

我只是想知道什麼$([])是什麼意思?

起初我還以爲是建立在jQuery的數組的方式,但是當我嘗試:變量聲明沒有

allFields.add(input4) 

後否則將被加入?!?

任何幫助將不勝感激! :) 我試過Google搜索這個,但是,我沒有太多的運氣。

回答

4

jQuery()函數接受許多不同的參數,其中之一是DOM元件的陣列的返回值。傳遞這樣的數組將導致包含這些元素的新jQuery對象被返回。在這種情況下,它們傳遞一個空數組,所以它返回一個包含零元素的jQuery對象。

.add()函數將爲現有集添加更多元素。

因此,$([])創建一個不包含元素的jQuery對象,.add('#input1')將添加該元素的idinput1到該集合。再次調用.add('#input1')將不會添加任何內容,因爲該元素已經存在。

+0

謝謝,安東尼。我最初發布到一個PHP腳本,它返回了最初添加的所有值。當我嘗試添加其他元素時var allFields = $([]).add(input1).add(input2); allfields.add(input3)in只返回2個原始值而不是全部3個? – 2013-03-11 16:54:06

+0

@RossWilson什麼是'input1','input2'和'input3'? – 2013-03-11 16:57:23

+2

@RossWilson:'add'方法創建一個新集並返回它。您需要重新分配'allFields':'allFields = allFields.add(input3)' – 2013-03-11 17:00:02

0
var allFields = $([]); 
allFields.add() 
在你的問題

你等於可變的。新增()方法