2011-01-13 95 views
0

使用jQuery的力量...JQuery的加入兩個選擇一起

我嘗試添加兩個選擇在一起,它們都包含相同類型的元素(<option>)的。但是add(..)方法似乎沒有玩球。

var matchingRemovedOptions = removedOptions.filter(function() { 
    return this.text.toLowerCase().match(str.toLowerCase()); 
}); 
tempOptions.add(matchingRemovedOptions); 
console.log(tempOptions.length); 
console.log(matchingRemovedOptions.length); 

正如你可以看到我嘗試濾除來自removedOptions選擇一些選項元素並將其添加到tempOptions選擇。

但是,當使用console.log時,tempOptions的長度與in保持相同,不會增加。

回答

4

.add()回報一組與元素/加選擇,它實際上並沒有將它們添加到組,它的呼籲。爲了得到你想要的效果,你需要更新它返回集合,像這樣:

tempOptions = tempOptions.add(matchingRemovedOptions); 

如果你想所有其他tree traversal functions,他們的行爲方式相同,例如obj.find("...")不會改變obj到發現,只有鏈條的其餘對該集合進行操作,其中.find()返回

2

你需要做的另一個分配:

tempOptions = tempOptions.add(matchingRemovedOptions); 
+0

我無法相信它,只要我完成發佈這條消息,當我回頭看看代碼時,它就明白了。 – Mike 2011-01-13 11:28:22