一旦你通过JQuery创建了选择器,你就可以对此进行更为深入的遍历。遍历可以分为三个基本组成部分,父节点、子节点和兄弟节点。JQuery为这些部分提供了许多丰富易用的方法。
<div class="grandparent">
<div class="parent">
<div class="child">
<span class="subchild"></span>
</div>
</div>
<div class="surrogateParent1"></div>
<div class="surrogateParent2"></div>
</div>
  • 父节点
    通过选择器来寻找父节点的方法有.parent()、.parents()、.parentsUntil()和 .closest()。
 
// 选择一个元素的父节点
// 返回 [ div.child ]
$( "span.subchild" ).parent();
// 选择匹配选择器元素的所有父节点
// 返回 [ div.parent ]
$( "span.subchild" ).parents( "div.parent" );
// 返回 [ div.child, div.parent, div.grandparent ]
$( "span.subchild" ).parents();
// 选择元素所有父节点,但是不包含指定选择器的元素
// 返回 [ div.child, div.parent ]
$( "span.subchild" ).parentsUntil( "div.grandparent" );
// 选择最近的父节点,需要注意的是仅仅会有一个父节点被选择,搜索的内容还包含了选择器本身
// 返回 [ div.child ]
$( "span.subchild" ).closest( "div" );
// 返回 [ div.child ] 选择器本身也包含在内
$( "div.child" ).closest( "div" );
  • 子节点
    通过选择器来寻找子节点的方法有.children()和.find()。两者的区别在于,.children()方法只能寻找直接子节点,而.find()方法可以遍历所有的子节点,包括子节点的子节点。
// 选择一个元素的直接子节点。
// 返回 [ div.parent, div.surrogateParent1, div.surrogateParent2 ]
$( "div.grandparent" ).children( "div" );
// 寻找所有匹配选择器的元素
// 返回 [ div.child, div.parent, div.surrogateParent1, div.surrogateParent2 ]
$( "div.grandparent" ).find( "div" );
  • 兄弟节点
    JQuery提供了一些基本的通过选择器来寻找兄弟节点的方法,你可以使用.prev()方法寻找前一个节点,可以使用.next()方法寻找后一个节点,可以使用.siblings()方法寻找两边的节点。另外还有.nextAll()、.nextUntil()、.prevAll()和.prevUntil()等方法。
// 选择下一个兄弟节点
// 返回 [ div.surrogateParent1 ]
$( "div.parent" ).next();
// 选择前一个兄弟节点
// 返回 [] 这里div.parent不存在前一个兄弟节点
$( "div.parent" ).prev();
// 选择所有后面的兄弟节点
// 返回 [ div.surrogateParent1, div.surrogateParent2 ]
$( "div.parent" ).nextAll();
// 返回 [ div.surrogateParent1 ]
$( "div.parent" ).nextAll().first();
// 返回 [ div.surrogateParent2 ]
$( "div.parent" ).nextAll().last();
// 选择所有前面的兄弟节点
// 返回 [ div.surrogateParent1, div.parent ]
$( "div.surrogateParent2" ).prevAll();
// 返回 [ div.surrogateParent1 ]
$( "div.surrogateParent2" ).prevAll().first();
// 返回 [ div.parent ]
$( "div.surrogateParent2" ).prevAll().last();

使用.siblings()方法可以选择所有的兄弟节点。

// 选择所有的兄弟节点
// 返回 [ div.surrogateParent1, div.surrogateParent2 ]
$( "div.parent" ).siblings();
// 返回 [ div.parent, div.surrogateParent2 ]
$( "div.surrogateParent1" ).siblings();
    小范围少次数的遍历是比较合适的,应该尽量避免遍历跨越大片的文档或者从一个容器到另一个容器。

JQuery官方学习资料(译):遍历的更多相关文章

  1. JQuery官方学习资料(译):遍历JQuery对象和非JQuery对象

        JQuery提供了一个对象遍历的Utility方法$.each()和一个JQuery集合遍历方法.each(). $.each()     $.each()是一个通用的方法用来遍历对象和数组, ...

  2. JQuery官方学习资料(译):Utility方法

        JQuery提供了一些utility方法在$命名空间里,这些方法对完成常规的编程任务非常有帮助. $.trim()     删除前后部的空白内容. // 返回 "lots of ex ...

  3. JQuery官方学习资料(译):类型

    类型     JavaScript提供了多个内置数据类型.除了这些,这份文档还将介绍一些虚拟类型,例如选择器.伪类.事件等. String 在JavaScript中字符串是一个不可变的对象,它包含无. ...

  4. JQuery官方学习资料(译):使用JQuery的.index()方法

        .index()是一个JQuery对象方法,一般用于搜索JQuery对象上一个给定的元素.该方法有四种不同的函数签名,接下来将讲解这四种函数签名的具体用法. 无参数的.index() < ...

  5. JQuery官方学习资料(译):Data方法

        你可能经常会想需要通过元素来存储一些数据.在JavaScript中你可能需要给元素添加属性来实现这样的功能,但是在某些浏览器中,你可能还需要处理因此造成的内存泄露问题.JQuery提供了一个简 ...

  6. JQuery官方学习资料(译):CSS

        JQuery提供了一个处理方法,可以获取或设置元素的CSS属性. // 获取 CSS 属性 $( "h1" ).css( "fontSize" ); / ...

  7. JQuery官方学习资料(译):JQuery对象

        每当创建一个新的元素(或者选择一个已经存在的元素)时,JQuery将返回一个元素的集合.大部分的开发人员新接触JQuery的时候,都把这个集合当做数组.这个集合中的DOM元素有从零开始的索引, ...

  8. JQuery官方学习资料(译):操作元素

      获取和设置元素的信息     有很多种方式可以改变现有的元素,最常见的是改变HTML内容或者元素的属性.JQuery提供了简单的夸浏览器的方法来帮助你实现元素信息的获取和设置. .html():获 ...

  9. JQuery官方学习资料(译):选择器的运作

    Getters 和 Setters     JQuery的方法重载,方法设置和获取值一般使用相同名称的方法,当一个方法用来设置一个值的时候称之为Setter,当一个方法用来获取一个值的时候称之为Get ...

随机推荐

  1. 熟悉常用的Linux操作

    请按要求上机实践如下linux基本命令. cd命令:切换目录 (1)切换到目录 /usr/local  cd /usr/local (2)去到目前的上层目录    cd .. (3)回到自己的主文件夹 ...

  2. Python序列结构--字典

    字典:反映对应关系的映射类型 字典(dict)是包含若干“键:值”元素的无序可变序列 字典中元素的“键”可以是python中任意不可变数据,例如整数.实数.复数.字符串.元组等类型可哈希数据,“键”不 ...

  3. Pyhon学习笔记-基础3

    文件操作 1.基本操作 f = open("filename","r",encoding="utf-8") #打开文件,以r模式,字符编码模 ...

  4. java与eclipse的工作小结

    1.Eclipse 的启动画面 A.加启动参数.如: eclipse.exe -showsplash C:/splash.bmp 更多可参考:http://www.cnblogs.com/sharew ...

  5. 背水一战 Windows 10 (99) - 关联启动: 关联指定的文件类型, 关联指定的协议

    [源码下载] 背水一战 Windows 10 (99) - 关联启动: 关联指定的文件类型, 关联指定的协议 作者:webabcd 介绍背水一战 Windows 10 之 关联启动 关联指定的文件类型 ...

  6. Android 图片高级绘图效果---高斯模糊

    高斯模糊就是将指定像素变换为其与周边像素加权平均后的值,权重就是高斯分布函数计算出来的值.高斯模糊能够将图片制作成类似磨砂的图片效果,一般这些图片都用来作为背景. 目前使用到的是RenderScrip ...

  7. 微信小程序我的界面

    前言 感谢! 承蒙关照~ 微信小程序我的界面 界面效果: 界面结构: 小程序代码: 我们先看me.json代码 { "navigationBarTitleText": " ...

  8. 微信小程序高级基础

    微信小程序高级基础 微信小程序的注册和服务器配置: 小程序是什么呢?小程序是一种不需要下载安装就可以使用的应用,它实现了应用"触手可及"的梦想,用户扫一扫或者搜一下就可以打开应用, ...

  9. Android精通之AsyncTask与ListView讲解

    版权声明:未经博主允许不得转载 AsyncTask 了解AsyncTask异步,需要了解一下异步任务(多线程),什么是线程,可以这么说线程好比边吃饭边看电视,AsyncTask是为了方便后台线程中操作 ...

  10. 【详记MySql问题大全集】四、设置MySql大小写敏感(踩坑血泪史)

    系列目录 一.安装MySql 二.安装并破解Navicat 三.没有my.in配置文件怎么办 四.设置MySql的大小写敏感 五.重置MySql登陆密码 这一篇可以说是我的踩坑的血泪史了... MyS ...