博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
《jQuery Cookbook中文版》——1.7 返回破坏性修改之前的选择
阅读量:7109 次
发布时间:2019-06-28

本文共 1045 字,大约阅读时间需要 3 分钟。

本节书摘来自异步社区《jQuery Cookbook中文版》一书中的第1章,第1.7节,作者:【美】jQuery社区专家组著,更多章节内容可以访问云栖社区“异步社区”公众号查看

1.7 返回破坏性修改之前的选择

1.7.1 问题

需要删除用于一组元素的破坏性jQuery方法(例如,filter()或find()),以便将集合恢复到破坏性方法使用之前的状态,就像破坏性方法从来没有调用过一样。

1.7.2 解决方案

jQuery提供end()方法,可以用它返回使用破坏性方法之前选择的一组DOM元素。为了理解end()方法,我们来看看下面的HTML。

text

Middle text

text

代码中的第一条alert()语句包含的jQuery语句搜索文档中所有

元素,然后对选中的

元素应用filter()方法,仅选择类为middle的元素。length属性报告了集合中剩下元素的数量:

alert(jQuery('p').filter('.middle').length); //提示1

下一条alert()语句使用了end()方法。这里所做的操作和前一条语句相同,唯一例外的是撤消了filter()方法,返回filter()方法使用前包装器集包含的元素:

alert(jQuery('p').filter('.middle').end().length); //提示3

最后一条alert()语句示范了如何两次使用end()方法移除filter()和find()破坏性修改,使包装器集返回其原始构成的方法:

alert(jQuery('p').filter('.middle').find('span').end().end().length); //提示3

1.7.3 讨论
如果使用end()方法之前没有执行破坏性操作,将会返回一个空集。破坏性操作指的是任何改变匹配jQuery元素集合的操作,也就是返回jQuery对象的任何遍历或者操纵方法,包括add()、andSelf()、children()、closes()、filter()、find()、map()、next()、
nextAll()、not()、parent()、parents()、prev()、prevAll()、siblings()、slice()、
clone()、appendTo()、prependTo()、insertBefore()、insertAfter()和replaceAll()。

转载地址:http://uvthl.baihongyu.com/

你可能感兴趣的文章
最后一位
查看>>
Vue学习笔记(1)——在页面右上角实现可悬浮/隐藏的系统菜单
查看>>
Java Thread 的使用
查看>>
[Noip2016]换教室(期望+DP)
查看>>
【译】使用 React,TypeScript 和 Webpack 开始一个项目
查看>>
3555: [Ctsc2014]企鹅QQ
查看>>
Mysql分库分表方案之spider存储引擎(一)
查看>>
【BZOJ】2502 清理雪道
查看>>
NSProxy的简单使用
查看>>
【CodeForces】704 C. Black Widow 动态规划+模拟
查看>>
找一个数组中特别的数
查看>>
BestCoder Round #25 1002 Harry And Magic Box [dp]
查看>>
leetcode-189-Rotate Array
查看>>
SQL Server 2008 排序函数 ROW_NUMBER和RANK 用法总结
查看>>
使用 nginx 同域名下部署多个 vue 项目,并使用反向代理
查看>>
[leetcode] 13. Roman to Integer
查看>>
centos7 下载eclipse的镜像站点
查看>>
MySQL ('root'@'%') does not exist的问题
查看>>
关于setTimeout & setInterval
查看>>
树链剖分
查看>>