Jquery学习笔记:通过层次关系获取jquery对象
前面一篇文章,我们介绍了如何通过web标签的id , css样式值来获取jquery对象。
但这只是基本方法,不能满足所有场景的需求。
本文介绍通过dom元素之间的层次关系获取元素。具体是将各种标识符(id, css样式,html标签名)组合在一起来获取jquery对象。
1、匹配后代元素
$("#myid a") //获取标识为myid下所有的 html标签为a的子元素(注意不仅是myid下的孩子节点,还包括孙子,更下层的所有满足关系的节点)
$("#ctypeId li a span") //可以支持多层的层次关系
$("body .container .success") //支持各种标识符的组合
注意:组合中的每种标识 一定是从祖先 到后代的层次关系
2、匹配子元素
父子和后台的区别是,父子是父节点和第一层子节点的关系,孙子节点等更下一层的关系就不算了。
举例,htnl代码如下:
<div id="mydiv">
<div>
<div>xx</div>
</div>
<div></div>
</div>
js代码如下:
var obj = $("#mydiv div");
alert(obj.length); //值为3,包含#mydiv下的所有层次div
obj = $("#mydiv>div");
alert(obj.length); //值为2,只包含#mydiv下的第一层次的div
说明:这种方式一样支持超过2层的关联关系的查找。
3、匹配之后的紧相领元素
这是匹配最靠近下一个的兄弟节点。举例如下:
<div id="mydiv"></div>
<p>hello1</p>
<p>hello2</p>
<div>div1</div>
<div>div2</div>
js代码
var obj = $("#mydiv + p");
alert(obj.length); //1
alert(obj.html()); //hello1
注意 $("#mydiv + div")将获取不到元素,因为#mydiv的最接近的元素的标签不是div。这可以用来检查邻近的兄弟节点是否是设想的节点。
因为已经限制了必须是紧领的下一个兄弟节点,可以不限制兄弟节点的标识,直接获取到。
所以 通过 $("#mydiv+") 就可以获取到紧邻的兄弟节点。
还可以通过方法调用 $("#mydiv").next() 来获取到同样的节点。
说明:$("#mydiv+div+div") 表示匹配第2个相邻的兄弟节点(但要求标签必须是div)
而 $("#mydiv++") 则无条件指定返回第2个相邻的元素,除非不存在第2个兄弟节点
4、匹配之后的所有兄弟元素
<div>
<div id="mydiv"></div>
<p class="xxx">hello1</p>
<p>hello2</p>
<div >div1</div>
</div>
js代码:
var obj = $("#mydiv~"); //获取#mydiv后的所有兄弟节点
alert(obj.length); //3
obj = $("#mydiv~p"); //获取#mydiv后的所有标签为p的兄弟节点
alert(obj.length); //2
obj = $("#mydiv~div"); //获取#mydiv后的所有标签为div的兄弟节点
alert(obj.length); //1
同样可以通过调用方法达到相同的目的
$("#mydiv").nextAll() 等同于 $("#mydiv~")
$("#mydiv").nextAll("p") 等同于 $("#mydiv~p")
$("#mydiv").nextAll("div") 等同于 $("#mydiv~div")
5、小结
通过层次关系的指定和约束,将各种关系组合在一起,来获取元素,功能非常强大。几乎可以满足各种场景的需求。
Jquery学习笔记:通过层次关系获取jquery对象的更多相关文章
- jQuery学习笔记(1) 初识jQuery
目录 目录 引用 注意 HelloWorldHelloWorld! jQueryjQuery对象和DOMDOM对象的相互转换 冲突的解决 引用 本地文件引用: <script src=" ...
- jQuery 学习笔记(2)(jQuery静态方法)
jQuery静态方法 1.$.each() 和 $.map() 既可以遍历数组也可以遍历伪数组 $.each(arr, function(value, index) { ... } ) $.map( ...
- jQuery学习笔记(一)jQuery选择器
目录 jQuery选择器的优点 基本选择器 层次选择器 过滤选择器 表单选择器 第一次写博客,希望自己能够长期坚持,以写博客的方式作为总结与复习. 最近一段时间开始学习jQuery,通过写一个jQue ...
- 《jQuery权威指南》学习笔记之第2章 jQuery选择器
2.1 jQuery选择器概述 2.1.1 什么使选择器 2.1.2 选择器的优势: 代码更简单,完善的检测机制 1.代码更简单 示例2-1 使用javascript实现隔行变色 < ...
- jQuery 学习笔记
jQuery 学习笔记 一.jQuery概述 宗旨: Write Less, Do More. 基础知识: 1.符号$代替document.getElementById( ...
- jQuery学习笔记(一):入门
jQuery学习笔记(一):入门 一.JQuery是什么 JQuery是什么?始终是萦绕在我心中的一个问题: 借鉴网上同学们的总结,可以从以下几个方面观察. 不使用JQuery时获取DOM文本的操 ...
- jQuery学习笔记 - 基础知识扫盲入门篇
jQuery学习笔记 - 基础知识扫盲入门篇 2013-06-16 18:42 by 全新时代, 11 阅读, 0 评论, 收藏, 编辑 1.为什么要使用jQuery? 提供了强大的功能函数解决浏览器 ...
- jQuery学习笔记之概念(1)
jQuery学习笔记之概念(1) ----------------------学习目录-------------------- 1.概念 2.特点 3.选择器 4.DOM操作 5.事件 6.jQuer ...
- JQuery学习笔记——层级选择器
JQuery学习笔记--层级选择器 上一篇学习了基础的五种选择,分别是id选择器,class选择器,element选择器,*选择器 和 并列选择器.根据手册大纲,这篇学习的是层级选择器. 选择器: 1 ...
随机推荐
- EF使用时异常:对一个或多个实体的验证失败。有关详细信息
//最顶级异常中是不提示具体哪个字段验证失败,必须到详细异常类型中查看 try { //EF操作 } catch (System.Data.Entity.Validation.DbEntityVali ...
- URAL 1225 Flags
题目:click here #include <bits/stdc++.h> using namespace std; typedef long long ll; ; int n; ll ...
- 【Linux命令】mysql数据库常用操作命令
#数据库操作: #建立数据库 create database data_name #删除数据库 drop database data_name #查看: show databases; #表操作: # ...
- uml笔记
把进度放在好了: 活动图与业务流程 对业务流程支持的主要图形就是活动图,活动图的主要目的在陈述活动与活动之间流程控制的转移.
- ThinkPHP第七天(F函数使用,项目分组配置,项目分组模板文件放置规则配置)
1.F(文件名称,写入数据,写入地址),用于将数据写入至磁盘文件中,如F('Data',$arr,'./Data/'),作用是将$arr写入至网站根目录的Data文件夹中的Data.php中. 2.读 ...
- 关于QuartusII中的文件加密
有时候我们要把工程交接给别人,但是又不希望对方看到里面的东西.在网上查找了几位大牛的博客进行整合 来自coyoo博客 http://bbs.ednchina.com/BLOG_ARTICLE_2482 ...
- AutoCAD 2013官方简体中文破解版(32 / 64位),带激活码和注册机
AutoCAD 2014下载地址:http://ideapad.zol.com.cn/61/160_603697.html 安装及破解方法:(注册机下载在下方) 1.安装Autodesk AutoCA ...
- Qt学习 之 多线程程序设计(QT通过三种形式提供了对线程的支持)
QT通过三种形式提供了对线程的支持.它们分别是, 一.平台无关的线程类 二.线程安全的事件投递 三.跨线程的信号-槽连接. 这使得开发轻巧的多线程Qt程序更为容易,并能充分利用多处理器机器的优势.多线 ...
- android linearlayout imageview置顶摆放
在练习android时,想在Linearlayout内放一图片,使其图片置顶,预期效果是这样的: 但xml代码imageview写成这样后, <ImageView android:layout_ ...
- Windows 8.1 RTM初体验
Windows 8.1正式发布在10月17日,现在可以在MSDN/TechNet进行订阅下载. 操作系统版本号和Windows Server 2012 R2保持一致. 开始屏幕动态磁贴现在有4种尺寸可 ...