破坏性操作是当一个jQuery函数被使用在一个对象后造成此对象的结构变化。
举个例子:
var obj = $("body").find("p");
在 body 没有被使用 find 之前,对象 obj 包括 body 和 body 之内的所有元素
但 body 在被使用 find 之后,对象 obj 只包括 p 元素,原来的其它元素已不复存在,也就是说 原来的对象 obj 的结构被破坏,或者说被修改。
实例:
$("#blog").find("p.title").css({fontWeight: "bold"});
现在上面这行代码运行后剩下的是全部的 p,如果要继续对 $("#blog") 对象进行修改,例如设置 $("#blog") 的高度为200
$("#blog").find("p.title").css({fontWeight: "bold"}).css({height: 200}); // 错误,这样写会修改 p 的高度
$("#blog").find("p.title").css({fontWeight: "bold"}).end().css({height: 200}); // 正确
在破坏性操作之后可以使用 end() 来还原对象。
在一段代码声明后(;),jQuery会自动还原对象,破坏性操作只是在一段连贯的声明中起作用。
$("#blog").find("p.title").css({fontWeight: "bold"});
// jQuery 自动 end()
$("#blog").css({height: 200});
等同上面连在一起写的代码。