凭借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的长度保持不变,不会增加。
答案 0 :(得分:4)
.add()
返回添加了元素/选择器的集合,它实际上将它们添加到调用它的集合中。要获得所需的效果,您需要更新到它返回的集合,如下所示:
tempOptions = tempOptions.add(matchingRemovedOptions);
如果您考虑所有其他tree traversal functions,它们的行为方式相同,例如obj.find("...")
不会将obj
更改为找到的内容,只会更改 rest 在该集合上运行,.find()
返回。
答案 1 :(得分:2)
您需要进行另一次分配:
tempOptions = tempOptions.add(matchingRemovedOptions);