一旦用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. 解读Loadrunner网页细分图(Web Page Diagnostics)

    [转载的地址]https://www.cnblogs.com/littlecat15/p/9456376.html 一.启用网页细分图 首先在Controller场景设计运行之前,需要在菜单栏中设置D ...

  2. 大数据学习——actor编程

    1 概念 Scala中的Actor能够实现并行编程的强大功能,它是基于事件模型的并发机制,Scala是运用消息(message)的发送.接收来实现多线程的.使用Scala能够更容易地实现多线程应用的开 ...

  3. Python面试题(练习一)

    1.Python的可变类型和不可变类型? 可变类型:list.dict(列表和字典) 不可变类型:数字.字符串.元组 2.求结果: v = dict.fromkeys(['k1','k2'],[]) ...

  4. How to install redis server on CentOS 7 / RHEL 7

    在本教程中,我们将学习如何在CentOS 7 / RHEL 7上安装Redis服务器. redis的缩写是REmote DIctionary Server. 它是最流行的开源,高级键值缓存和存储之一. ...

  5. python常用方法总结

    1.os模块的路径拼接: import os now_path=os.path.abspath(__file__)#当前运行文件的路径 print(now_path) uppeer_path=os.p ...

  6. [python篇][1]configparser 问题汇总

    https://wiki.python.org/moin/ConfigParserExamples 1 错误一 nicodeEncodeError: 'ascii' codec can't encod ...

  7. deque 类

    题外: 'A' +1='B' 1.deque被称为双端队列,它也是一种顺序容器.可通过迭代器存取元素 ,也可以通过下标顺序 存取元素 for(i=0;i<d1.size();i++) { cou ...

  8. javascript基础2 判断 数据类型

    js中的数据类型: ------------------------------------------------------------------------------- 返回undefine ...

  9. Unity3D - UGUI组件的中英文对照

  10. 北京集训TEST13——PA(第k小数)

    题目: Description [问题描述] 从n个数中选若干(至少1)个数求和,求所有方案中第k小的和(和相同但取法不同的视为不同方案).[输入格式]    第一行输入2个正整数n,k.    第二 ...