随着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);
如您所见,im正在尝试从RemovedOptions选择中过滤掉一些选项元素,并将它们添加到tempOptions选择中。
但是,使用console.log时,tempOptions的长度与in相同,不会增加。
最佳答案
.add()
返回一个添加了元素/选择器的集合,它实际上并没有将它们添加到调用它的集合中。为了获得想要的效果,您需要更新为其返回的设置,如下所示:
tempOptions = tempOptions.add(matchingRemovedOptions);
如果考虑所有其他tree traversal functions,它们的行为方式相同,例如
obj.find("...")
不会将obj
更改为找到的值,只有链的其余部分在该集合上运行,.find()
返回。