随着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()返回。

09-19 09:50