2011-01-13 59 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