JQuery一起添加两个选项

时间:2011-01-13 11:25:52

标签: javascript jquery selection

凭借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的长度保持不变,不会增加。

2 个答案:

答案 0 :(得分:4)

.add() 返回添加了元素/选择器的集合,它实际上将它们添加到调用它的集合中。要获得所需的效果,您需要更新到它返回的集合,如下所示:

tempOptions = tempOptions.add(matchingRemovedOptions);

如果您考虑所有其他tree traversal functions,它们的行为方式相同,例如obj.find("...")不会将obj更改为找到的内容,只会更改 rest 在该集合上运行,.find() 返回

答案 1 :(得分:2)

您需要进行另一次分配:

tempOptions = tempOptions.add(matchingRemovedOptions);