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

1.9 根据当前上下文遍历DOM获得新的DOM元素集

1.9.1 问题
你已经选择了一组DOM元素,根据选择集在DOM结构树中的位置,你打算遍历DOM获得一个新的元素集以供操作。

1.9.2 解决方案
jQuery提供一组方法,可以根据当前选择的DOM元素的上下文遍历DOM。

例如,查看如下的HTML片段:

现在,用:eq()索引自定义选择器选择第2个元素:

//根据索引选择集合中的第2个元素,索引从0开始

jQuery('li:eq(1)');

现在有一个上下文——HTML结构中的一个出发点。出发点是第2个元素。从这里开始,可以到达任何位置——对,几乎任何位置。

让我们来看看,使用几个jQuery提供的DOM遍历方法能够到达哪里。代码中的注释就能说明问题:

jQuery('li:eq(1)').next() //选择第三个<li>
jQuery('li:eq(1)').prev() //选择第一个<li>
jQuery('li:eq(1)').parent() //选择<ul>
jQuery('li:eq(1)').parent().children() //选择所有<li>
jQuery('li:eq(1)').nextAll() //选择第二个<li>之后的所有<li>
jQuery('li:eq(1)').prevAll() //选择第二个<li>之前的所有<li>

记住,这些遍历方法产生新的包装器集,使用end()可以返回前一个包装器集。

1.9.3 讨论
目前为止介绍的遍历方法展示了简单遍历。要了解遍历,还必须知道另外两个重要的概念。

第一个概念可能显而易见——遍历方法可以链接。我们再来看看前面出现过的jQuery语句:

jQuery('li:eq(1)').parent().children() //选择所有<li>

注意,我已经从第二个元素遍历到父元素,然后再从父元素选择的所有子元素。jQuery包装器集现在包含的是中的所有元素。当然,这只是为了说明遍历方法而设计的例子。如果我们想要的是一个只元素的包装器集,从一开始就选择所有元素要简单得多(例如,jQuery('li'))。

处理遍历方法时需要牢记的第二个概念是许多方法都接受一个可选的参数,用于过滤选择集。我们仍然用链接的示例来说明这一点,看看如何修改代码,以便只选择最后一个

元素。别忘了,这个例子仅仅用来说明遍历方法如何传递用于选择特定元素的表达式:

jQuery('li:eq(1)').parent().children(':last') //选择最后一个 <li>

jQuery还提供了其他遍历方法,在这里不作介绍。在本书里你将会看到这些遍历方法。

《jQuery Cookbook中文版》——1.9 根据当前上下文遍历DOM获得新的DOM元素集相关推荐

  1. jQuery Cookbook中文版

    <jQuery Cookbook中文版> 基本信息 作者: (美)jQuery社区专家组 译者: 姚军 孙博 出版社:人民邮电出版社 ISBN:9787115255907 上架时间:201 ...

  2. 《BackTrack 5 Cookbook中文版——渗透测试实用技巧荟萃》—第1章1.3节安装BackTrack到USB驱动器...

    本节书摘来自异步社区<BackTrack 5 Cookbook中文版--渗透测试实用技巧荟萃>一书中的第1章1.3节安装BackTrack到USB驱动器,作者[美]Pritchett Wi ...

  3. Flex入门的好书——《Flex3 Cookbook 中文版》

    本文标题:Flex入门的好书--<Flex3 Cookbook 中文版> 本文链接:http://zengrong.net/post/659.htm   Flex3 Cookbook 中文 ...

  4. 《Spark Cookbook 中文版》一导读

    前 言 Spark Cookbook 中文版 随着Hadoop这个大数据平台的成功,用户的期望也水涨船高,他们既希望解决不同分析问题的功能提高,又希望减少延迟.由此,各类工具应运而生.Apache S ...

  5. 《BackTrack 5 Cookbook中文版——渗透测试实用技巧荟萃》目录—导读

    版权声明 BackTrack 5 Cookbook中文版--渗透测试实用技巧荟萃 Copyright @ Packt Publishing 2012. First Published in the E ...

  6. 《BackTrack 5 Cookbook中文版——渗透测试实用技巧荟萃》—第1章1.2节安装BackTrack到硬盘...

    本节书摘来自异步社区<BackTrack 5 Cookbook中文版--渗透测试实用技巧荟萃>一书中的第1章1.2节安装BackTrack到硬盘,作者[美]Pritchett Willie ...

  7. 为什么jQuery或诸如getElementById之类的DOM方法找不到元素?

    本文翻译自:Why does jQuery or a DOM method such as getElementById not find the element? What are the poss ...

  8. JQuery实现动态表格(添加、删除、遍历)

    遍历表格逻辑 1.浏览器会自动把所有行tr使用tbody标签包裹起来 2.使用childern()获取当前元素的所有儿子标签 3.table表格需要两个childern才能获取到所有tr行,若一个ch ...

  9. Jquery Cookbook摘要之使用上下文参数

    你已经听说过上下文参数,但是还没有碰到使用的场合.再想$()中,传递选择器的时候,可以传递第二个参数,指定上下文,jQ将在这个上下文中搜索匹配选择器表达式的元素,上下文参数可能是利用最不充分的JQ功能 ...

最新文章

  1. 开源 java CMS - FreeCMS2.3员
  2. SQL Server里的INTERSECT
  3. [mysql] mysql-myibatis-整理
  4. 高可用的eureka
  5. 怎么写CORTEX在windows用arm-none-eabi-gcc编译时的makefile
  6. 设计模式系列:小小总结
  7. mysql选择联合索引还是单索引?索引列应该使用哪一个最有效?深入測试探讨...
  8. php和python-Python与PHP:有什么区别?
  9. vip会员统计表 (vip等级是灵活配置的 非写死1是金卡用户 2是什么 等)
  10. 【linux基础】cuDNN版本查询
  11. 不要打开文件,阅读Rvt信息档案
  12. win7计算机管理快捷键,win7系统快捷键有哪些|win7常用的15个快捷键
  13. 微软的序列号生成和验证
  14. 二十九、非谓语动词_作定语
  15. NBIOT BC26 opencpu物联网应用案例详细解析
  16. JavaScript实现更换背景图片
  17. excel斜线表头的制作
  18. 浪潮的“Inspur品牌”
  19. pycharm 把文件夹设置为包
  20. 怎么查看各进程分别占用多少服务器内存?

热门文章

  1. PERL 使用IO::Socket::INET模块实现socket编程
  2. Liunx CentOS6编译安装LAMP
  3. 瑞元双玻组件助力浙江多座分布式电站高效运行
  4. struts2 在拦截器进行注入(依据Action是否实现自己定义接口)
  5. NS3 MyApp Class Reference
  6. oc语言学习之基础知识点介绍(三):类方法、封装以及继承的介绍
  7. imagemagick, imagick和magickwand的安装
  8. apache常用的配置指令:PidFile
  9. 学习笔记88—spyder生成的图单独窗口显示
  10. 5.2.1.开启驱动开发之路