一旦用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. ef添加数据时出错 System.Data.Entity.Infrastructure.DbUpdateConcurrencyException”类型的异常

    找半天才找到 ef添加数据时出错原因:数据库表中没有主键 ,就算表中有自增列 Added方法也会报错: -        this._db.SaveChanges() “this._db.SaveCh ...

  2. 用Python表达对Android的想法

    组员:喻航,张子东 视频:点我 #DISCARD ANDROID TODAY! import turtle import turtle as gui #setting turtle.screensiz ...

  3. Spring事务管理接口PlatformTransactionManager的实现类DataSourceTransactionManager

    package org.springframework.jdbc.datasource; import java.sql.Connection; import java.sql.SQLExceptio ...

  4. 1.ABP使用boilerplate模版创建解决方案

    1.到ABP框架的官网(http://www.aspnetboilerplate.com/),自动生成一个解决方案 每步注解: 第一步:AngularJS是一款比较火的SPA(Single Page ...

  5. 使用Gson解析JSON数据

    本文使用gson对json进行解析处理 首先,下载gson包 ,本文使用(gson-1.6.jar) package com.whroid.java.json; import com.google.g ...

  6. 【bzoj2795】[Poi2012]A Horrible Poem Hash+分解质因数

    题目描述 给出一个由小写英文字母组成的字符串S,再给出q个询问,要求回答S某个子串的最短循环节.如果字符串B是字符串A的循环节,那么A可以由B重复若干次得到. 输入 第一行一个正整数n (n<= ...

  7. 微信小程序红包开发思路 微信红包小程序开发思路讲解

    之前公司开发小程序红包,将自己在开发的过程中遇到的一些坑分享到了博客里.不少人看了以后,还是不明白怎么开发.也加了我微信咨询.所以今天,我就特意再写一篇文章,这次就不谈我开发中遇到的坑了.就主要给大家 ...

  8. bzoj 4034 [HAOI2015]树上操作 入栈出栈序+线段树 / 树剖 维护到根距离和

    题目大意 有一棵点数为 N 的树,以点 1 为根,且树点有边权.然后有 M 个 操作,分为三种: 操作 1 :把某个节点 x 的点权增加 a . 操作 2 :把某个节点 x 为根的子树中所有点的点权都 ...

  9. bzoj 2819 Nim dfn序+树状数组维护区间异或值

    题目大意 著名游戏设计师vfleaking,最近迷上了Nim.普通的Nim游戏为:两个人进行游戏,N堆石子,每回合可以取其中某一堆的任意多个,可以取完,但不可以不取.谁不能取谁输.这个游戏是有必胜策略 ...

  10. SqlLite 安装与使用

    一.安装文件 官方下载地址: http://system.data.sqlite.org/index.html/doc/trunk/www/downloads.wiki 选择要下载的类库文件:sqli ...