jQuery -> end方法的使用方法

时间:2023-03-08 17:23:42

我们在对结果集使用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()

详细使用方法例如以下

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
</head>
<body>
<p>Text</p>
<p class="middle">Middle <span>Text</span></p>
<p>Text</p>
<script type="text/javascript" src="jquery-1.11.1.js"></script>
<script type="text/javascript">
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
</script>
</body>
</html>

当对$('p')的结果运行filter('.middle')时,仅仅有<p class="middle">Middle <span>Text</span></p>符合结果。

继续对上述操作运行end(),则filter()产生的作用被撤销,结果集中包括三个<p>