一旦用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. java基础语法中容易出错的细节

    1 java中的数字默认类型为int **容易出现类型转换错误 long 定义的数字后面必须有 “l” “L” float 定义的数字后面必须有 “f” “F” java中比int表述范围大的数,不会 ...

  2. 深入了解ASO

    ASO对于一些人来说可能很陌生,很多人都听说过SEO,没有听说过ASO(我也是最近才知道这个领域),因为这是一个数字营销的一个新领域.ASO(App Store Optimization)是为了让自己 ...

  3. bootstrap里的fileimput的小问题

    fileinput 是bootstrap 里面一个非常好的插件 于是我很开心的开始的使用了 $("#file_upload").fileinput({ uploadUrl: &qu ...

  4. 一张图展示:用两个栈来实现一个队列,完成队列的Push和Pop操作

    一  基本思路 将s1作为存储空间,以s2作为临时缓冲区. 入队时,将元素压入s1. 出队时,将s1的元素逐个“倒入”(弹出并压入)s2,将s2的顶元素弹出作为出队元素,之后再将s2剩下的元素逐个“倒 ...

  5. AtCoder Regular Contest 083

    C - Sugar Water Time limit : 3sec / Memory limit : 256MB Score : 300 points Problem Statement Snuke ...

  6. 九度oj 题目1470:调整方阵

    题目描述: 输入一个N(N<=10)阶方阵,按照如下方式调整方阵:1.将第一列中最大数所在的行与第一行对调.2.将第二列中从第二行到第N行最大数所在的行与第二行对调. 依此类推...N-1.将第 ...

  7. Bootstrap-table custome-ajax用法

    <div id="toolbar"> <div class="form-inline" role="form"> & ...

  8. hibernate缓存机制【转】

    一.why(为什么要用Hibernate缓存?) Hibernate是一个持久层框架,经常访问物理数据库. 为了降低应用程序对物理数据源访问的频次,从而提高应用程序的运行性能. 缓存内的数据是对物理数 ...

  9. NOJ——1627Alex’s Game(II)(尺取)

    [1627] Alex’s Game(II) 时间限制: 2000 ms 内存限制: 65535 K 问题描述 Alex likes to play with one and zero as you ...

  10. [转] Makefile 基础 (5) —— Makefile 使用变量

    该篇文章为转载,是对原作者系列文章的总汇加上标注. 支持原创,请移步陈浩大神博客:(最原始版本) http://blog.csdn.net/haoel/article/details/2886 我转自 ...