1.remove操作应该是在filter返回的jquery对象上进行的 应该不会影响$filterChooser中的内容吧?
2.我看概念说的是:remove()是从页面中删除所有匹配的DOM元素,并不会改变jquery对象中的内容(和第一点认识有些矛盾,谁来给我理一理。。),而且代码里的remove是在插入到文档之前进行的,(插入之前)不在页面中的内容怎么从页面中删除?
我自己也试了一下 remove操作没有影响原来jquery对象中的元素数量说明 所以它改变的只是页面内容 ,$filterChooser中的内容应该一个也不少吧。。$filterChooser.appendTo($filters)应该是将原来所有元素都添加进页面了吧;可是实际运行效果确实是正常的删除了重复项。。恨不能理解
这段代码是 jquery in action 3rd edition 第七章例子中的代码 也没有讲细节。。。哪位大神可以给我解释下这个代码呀。。。
$filterChooser
.find('option[data-template-type]')
.filter(function() {
return filterInUse.indexOf($(this).data('template-type')) >= 0;
})
.remove();
$filterChooser.appendTo($filters);