2010-01-05 50 views
23

編輯:從jQuery 1.4開始,使用$()將如下所述工作。如何創建一個空的jQuery結果


我需要遍歷的陣列,並創建一個數,我想在一個單一的jQuery結果對象元件。

for (var i = 0; i < 10; ++i) { 
    $myJQueryObj = $myJQueryObj.add($("<span>blahblah</span>")); 
} 

但是,這個問題的問題是,你需要一個jQuery對象開始,你顯然想開始它爲空。在上面的例子中,我應該如何初始化$myJQueryObj

下面的例子不工作,因爲他們都選擇文檔對象:

$('') 
$() 
$(null) 
$(false) 

這些做的工作......但

$('#nonExistantElement') // yuck 
$().slice(0,0)   // surely there's a nicer way? 

有沒有更好的辦法?

回答

46

是的。嘗試$([])$()不起作用的原因是因爲jQuery需要一個上下文,並且沒有任何提供,將默認爲document作爲上下文。許多事情都依賴於這個假設是真實的,所以改變$()意味着「給我空集」充其量是有問題的。

11

啊,我在寫完這個問題後就想出來了。以下是我發現的情況,以防其他人感興趣:

​​