我们在对结果集使用find、filter等方法时,会改变结果集。
这种改变原先结果集的方法被称作destructive jQuery method
jQuery cookbook有如下定义:
A destructive operation is any operation that changes the set of matched jQuery elements, which means any traversing or manipulation method that returns a jQuery object, includingadd(), andSelf(), children(), closes(), filter(), find(), map(),
next(), nextAll(), not(), parent(), parents(), prev(), prevAll(), siblings(), slice(), clone(), appendTo(), prependTo(), insertBefore(), insertAfter(), replaceAll()。
具体用法如下
Text
Middle Text
Text
alert($('p').filter('.middle').length); // alerts 1
alert($('p').filter('.middle').end().length); // alerts 3
alert($('p').filter('.middle').find('span').end().end().length); // alerts 3
当对$('p')的结果执行filter('.middle')时,只有
Middle Text
符合结果。继续对上述操作执行end(),则filter()产生的作用被撤销,结果集中包含三个