一旦用jQuery创建一个初始的包装集。你就能深度遍历刚刚选择的包装集。

遍历能够被分为三个基础元件:父级。子级,同级。jQuery为全部这些元件提供丰富易用的方法。注意每个方法都能轻易的传递给字符串选择器,有一些甚至能够用另外的jQuery对象来过滤你的包装集。关注和參考API documentation on traversing来弄懂你有什么变化的參数可用。

父级

从包装集中寻找父级的元素中的方法包括.parent(), .parents(), .parentsUntil(), 和 .closest()

    <div class="grandparent">
<div class="parent">
<div class="child">
<span class="subchild"></span>
</div>
</div>
<div class="surrogateParent1"></div>
<div class="surrogateParent2"></div>
</div> // 选择一个元素的直系父级的元素中: // returns [ div.child ]
$( "span.subchild" ).parent(); // 选择一个元素的全部匹配给定选择器的父级的元素中
// returns [ div.parent ]
$( "span.subchild" ).parents( "div.parent" ); // returns [ div.child, div.parent, div.grandparent ]
$( "span.subchild" ).parents(); //选择一个元素的除了选择器中的元素以外的全部的父级的元素中:
// returns [ div.child, div.parent ]
$( "span.subchild" ).parentsUntil( "div.grandparent" ); // 选择最靠近的父级的元素中。注意唯独一个父级的元素中被选中,而且初始元素本身也包括在被搜索的元素中: // returns [ div.child ]
$( "span.subchild" ).closest( "div" ); // 返回[ div.child ] 。由于选择器包括在被搜索的元素中:
$( "div.child" ).closest( "div" );

子级

从包装集中寻找子级元素的方法包括 .children() and .find()

这两个方法之间的差别在于距离创建的包装集的子结构有多远。.children()只操作直系的子节点,而.find()能够循环遍历子节点,这些子节点的子节点。以此类推。

    // 选择元素直系的子节点   

    // returns [ div.parent, div.surrogateParent1, div.surrogateParent2 ]
$( "div.grandparent" ).children( "div" ); // 在包装集中。查找全部匹配选择器的元素
// returns [ div.child, div.parent, div.surrogateParent1, div.surrogateParent2 ]
$( "div.grandparent" ).find( "div" );

同级

在jQuery中。其余的遍历方法都是处理查找同级的包装集。一些基础的方法是就遍历的方向而言的。你能够用.prev()查找前一个元素。.next()查找后一个元素。及用.siblings()查找全部的两个元素。也有建立在这几个基础方法上的其它方法: .nextAll().nextUntil().prevAll().prevUntil()

    // 在选择器中选择下一个同级元素:

    // returns [ div.surrogateParent1 ]
$( "div.parent" ).next(); // 在选择器中选择前一个同级元素: // 在div.parent之前没有同级元素的存在的情况下返回[]
$( "div.parent" ).prev(); // 在选择器中选择全部下一个同级元素: // returns [ div.surrogateParent1, div.surrogateParent2 ]
$( "div.parent" ).nextAll(); // returns [ div.surrogateParent1 ]
$( "div.parent" ).nextAll().first(); // returns [ div.surrogateParent2 ]
$( "div.parent" ).nextAll().last(); // 在选择器中选择全部上一个同级元素: // returns [ div.surrogateParent1, div.parent ]
$( "div.surrogateParent2" ).prevAll(); // returns [ div.surrogateParent1 ]
$( "div.surrogateParent2" ).prevAll().first(); // returns [ div.parent ]
$( "div.surrogateParent2" ).prevAll().last();

.siblings()选择全部同级元素:

    // 在两个方向上选择一个元素的匹配给出选择器的同级元素

    // returns [ div.surrogateParent1, div.surrogateParent2 ]
$( "div.parent" ).siblings(); // returns [ div.parent, div.surrogateParent2 ]
$( "div.surrogateParent1" ).siblings();

Traversal documentation on api.jquery.com去查看这些和很多其它方法的全部文档。

在文档中遍历非常长距离的时候要当心——复杂的遍历必须使文档结构保持不变,这非常难保证即使你是创建整个从server到client应用程序的人。

一步或者两步的遍历会非常不错。但不妨避免从一个容器到还有一个容器的遍历。

原文地址

jQeury入门:遍历的更多相关文章

  1. 基于forms组件和Ajax实现注册功能

    一.基于forms组件的注册页面设计 1.运用forms组件的校验字段功能实现用户注册 views.py:    (在钩子中代码解耦,将form放在cnblog/blog/Myforms.py中) f ...

  2. 通过遍历JSON键值对获取包含某字符串的键的值_电脑计算机编程入门教程自学

    首发于:Aardio通过遍历JSON键值对获取包含某字符串的键的值_电脑计算机编程入门教程自学 http://jianma123.com/viewthread.aardio?threadid=429 ...

  3. Python入门篇-数据结构树(tree)的遍历

    Python入门篇-数据结构树(tree)的遍历 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.遍历 迭代所有元素一遍. 二.树的遍历 对树中所有元素不重复地访问一遍,也称作扫 ...

  4. OpenCV2+入门系列(三):遍历图像的几种方法

    根据OpenCV中Mat类型的结构和内存中存储方式,此处给出三种对图像进行遍历的方法.首先给出基础的读取图片代码,在中间替换三种遍历方法即可,本文中,程序将遍历图像并将所有像素点置为255,所有运行结 ...

  5. 山东省济南市历城第二中学——洛谷图论入门题--基本题必做 图的遍历—3.骑马修栅栏(fence)

    由于我这个破题提交了十四五遍,所以我决定写篇博客来记录一下. 这个题的题目描述是这样的 首先一看这个题我瞬间就想到了一笔画问题(欧拉回路). 对于能够一笔画的图,我们有以下两个定理. 定理1:存在欧拉 ...

  6. Scala编程入门---数组操作之Array.ArrayBuffer以及遍历数组

    在Scala中,Array代表的含义与Java类似,也是长度不可改变的数组.此外,由于Scala与java都是运行在JVM中,双方可以互相调用,因此Scala数组底层实际上是java数组.列如字符串数 ...

  7. 牛客网:java入门实现遍历目录

    项目介绍 遍历目录是操作文件时的一个常见需求.比如写一个程序,需要找到并处理指定目录下的所有JS文件时,就需要遍历整个目录.该项目教会你如何使用流式编程和lambda表达式,帮助你进一步熟悉java8 ...

  8. Kotlin入门(16)容器的遍历方式

    Kotlin号称全面兼容Java,于是乎Java的容器类仍可在Kotlin中正常使用,包括大家熟悉的队列ArrayList.映射HashMap等等.不过Kotlin作为一门全新的语言,肯定还是要有自己 ...

  9. (四)Lua脚本语言入门(数组遍历)

    这篇文章就当成铺垫型的文章,写着写着发现有好多想写的,,关于C#与Java,当然作为铺垫肯定与Lua的下部分介绍有关..... 对于"泛型",先看C#中"泛型" ...

随机推荐

  1. [Oracle] Lob介绍

    [Oracle] Lob介绍   像Oracle这种关系型数据库,比较擅长处理结构化的数据,那么对于非结构化的数据,Oracle是怎么处理和存储的呢?Lob (Large Object)是Oracle ...

  2. vs2015代码图

    可以看到代码的调用关系. 知乎文章:IDE 而言,是 Xcode 的技术比较先进还是 Visual Studio?

  3. iOS UICollectionView高级用法(长按自由移动cell)

    iOS 9之后: 示例如下 效果 前言: 看完你可以学到哪些呢? 就是文章标题那么多, 只有那么多. . 手残效果图没弄好. @property (nonatomic, strong) UIColle ...

  4. LibreOJ2095 - 「CQOI2015」选数

    Portal Description 给出\(n,k,L,R(\leq10^9)\),求从\([L,R]\)中选出\(n\)个可相同有顺序的数使得其gcd为\(k\)的方案数. Solution 记\ ...

  5. java面试题之BeanFactory和FactoryBean的区别

    BeanFactory是个Factory,也就是IOC容器或对象工厂:FactoryBean是个Bean.在Spring中,所有的Bean都是由BeanFactory(也就是IOC容器)来进行管理的. ...

  6. 微信答题小程序 微信小程序 答题 demo 头脑王者这样的答题小程序开发 答题的微信小程序开发经验 微信答题比赛小程序

    最近随着王思聪的我撒币,我快乐,直播答题非常火.同时知乎的答题小程序头脑王者也非常火爆.大家在微信和微信群里玩的不亦乐乎. 好吧,快乐总是属于你们,我却只能埋头写代码... 公司要求赶紧开发一个这样的 ...

  7. bzoj 3456 城市规划 无向简单连通图个数 多项式求逆

    题目大意 求n个点的无向简单连通图个数 做法1 \(f[i]\)表示i个点的无向简单连通图个数 \(g[i]=2^{\frac {i*(i-1)}{2}}\)表示i个点的无向简单图个数(不要求连通) ...

  8. java并发框架Executor介绍

    Executor框架是指java 5中引入的一系列并发库中与executor相关的一些功能类,其中包括线程池,Executor,Executors,ExecutorService,Completion ...

  9. 【POJ3498】March of the Penguins(最大流,裂点)

    题意:在靠近南极的某处,一些企鹅站在许多漂浮的冰块上.由于企鹅是群居动物,所以它们想要聚集到一起,在同一个冰块上.企鹅们不想把自己的身体弄湿,所以它们在冰块之间跳跃,但是它们的跳跃距离,有一个上限.  ...

  10. 现象: shell脚本中source aaa.sh时提示 source: not found

    原因: ls -l `which sh` 提示/bin/sh -> dash 这说明是用dash来进行解析的. 改回方法: 命令行执行:sudo dpkg-reconfigure dash 在界 ...