jQuery层级选择器_动力节点节点Java学院整理


Posted in jQuery onJuly 04, 2017

因为DOM的结构就是层级结构,所以我们经常要根据层级关系进行选择。

层级选择器(Descendant Selector)

如果两个DOM元素具有层级关系,就可以用$('ancestor descendant')来选择,层级之间用空格隔开。例如:

<!-- HTML结构 -->
<div class="testing">
  <ul class="lang">
    <li class="lang-javascript">JavaScript</li>
    <li class="lang-python">Python</li>
    <li class="lang-lua">Lua</li>
  </ul>
</div>

要选出JavaScript,可以用层级选择器:

$('ul.lang li.lang-javascript'); // [<li class="lang-javascript">JavaScript</li>]
$('div.testing li.lang-javascript'); // [<li class="lang-javascript">JavaScript</li>]

因为<div><ul>都是<li>的祖先节点,所以上面两种方式都可以选出相应的<li>节点。
要选择所有的<li>节点,用:

$('ul.lang li');

这种层级选择器相比单个的选择器好处在于,它缩小了选择范围,因为首先要定位父节点,才能选择相应的子节点,这样避免了页面其他不相关的元素。

例如:

$('form[name=upload] input');

就把选择范围限定在name属性为upload的表单里。如果页面有很多表单,其他表单的<input>不会被选择。
多层选择也是允许的:

$('form.test p input'); // 在form表单选择被<p>包含的<input>

子选择器(Child Selector)

子选择器$('parent>child')类似层级选择器,但是限定了层级关系必须是父子关系,就是<child>节点必须是<parent>节点的直属子节点。还是以上面的例子:

$('ul.lang>li.lang-javascript'); // 可以选出[<li class="lang-javascript">JavaScript</li>]
$('div.testing>li.lang-javascript'); // [], 无法选出,因为<div>和<li>不构成父子关系

过滤器(Filter)

过滤器一般不单独使用,它通常附加在选择器上,帮助我们更精确地定位元素。观察过滤器的效果:

$('ul.lang li'); // 选出JavaScript、Python和Lua 3个节点

$('ul.lang li:first-child'); // 仅选出JavaScript
$('ul.lang li:last-child'); // 仅选出Lua
$('ul.lang li:nth-child(2)'); // 选出第N个元素,N从1开始
$('ul.lang li:nth-child(even)'); // 选出序号为偶数的元素
$('ul.lang li:nth-child(odd)'); // 选出序号为奇数的元素

表单相关

针对表单元素,jQuery还有一组特殊的选择器:

:input:可以选择<input>,<textarea>,<select>和<button>;
:file:可以选择<input type="file">,和input[type=file]一样;
:checkbox:可以选择复选框,和input[type=checkbox]一样;
:radio:可以选择单选框,和input[type=radio]一样;
:focus:可以选择当前输入焦点的元素,例如把光标放到一个<input>上,用$('input:focus')就可以选出;
:checked:选择当前勾上的单选框和复选框,用这个选择器可以立刻获得用户选择的项目,如$('input[type=radio]:checked');
:enabled:可以选择可以正常输入的<input>、<select> 等,也就是没有灰掉的输入;
:disabled:和:enabled正好相反,选择那些不能输入的。

此外,jQuery还有很多有用的选择器,例如,选出可见的或隐藏的元素:

$('div:visible'); // 所有可见的div
$('div:hidden'); // 所有隐藏的div

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

jQuery 相关文章推荐
jQuery实现的背景颜色渐变动画效果示例
Mar 24 jQuery
jquery.rotate.js实现可选抽奖次数和中奖内容的转盘抽奖代码
Aug 23 jQuery
使用JQuery实现图片轮播效果的实例(推荐)
Oct 24 jQuery
js和jQuery以及easyui实现对下拉框的指定赋值方法
Jan 23 jQuery
基于jQuery实现Ajax验证用户名是否可用实例
Mar 25 jQuery
使用jquery DataTable和ajax向页面显示数据列表的方法
Aug 09 jQuery
用jQuery将JavaScript对象转换为querystring查询字符串的方法
Nov 12 jQuery
详解jquery和vue对比
Apr 16 jQuery
jQuery实现文本显示一段时间后隐藏的方法分析
Jun 20 jQuery
JavaScript自动生成 年月范围 选择功能完整示例【基于jQuery插件】
Sep 03 jQuery
JQuery实现ul中添加LI和删除指定的Li元素功能完整示例
Oct 16 jQuery
jQuery实现的图片点击放大缩小功能案例
Jan 02 jQuery
jQuery简介_动力节点Java学院整理
Jul 04 #jQuery
jQuery查找和过滤_动力节点节点Java学院整理
Jul 04 #jQuery
jQuery动画_动力节点节点Java学院整理
Jul 04 #jQuery
jQuery实现点击关注和取消功能
Jul 03 #jQuery
关于jQuery.ajax()的jsonp碰上post详解
Jul 02 #jQuery
jquery实现一个全局计时器(商城可用)
Jun 30 #jQuery
jQuery表单设置值的方法
Jun 30 #jQuery
You might like
mysql5写入和读出乱码解决
2006/11/25 PHP
JQuery jsonp 使用示例代码
2009/08/12 Javascript
基于jquery的9行js轻松实现tab控件示例
2013/10/12 Javascript
结合JQ1.9通过js正则判断各种浏览器版本的方法
2013/12/30 Javascript
JavaScript前端图片加载管理器imagepool使用详解
2014/12/29 Javascript
使用jquery操作session方法分享
2015/01/22 Javascript
利用jQuery实现WordPress中@的ID悬浮显示评论内容
2015/12/11 Javascript
Seajs 简易文档 提供简单、极致的模块化开发体验
2016/04/13 Javascript
基于jquery实现最简单的选项卡切换效果
2016/05/08 Javascript
很酷的星级评分系统原生JS实现
2016/08/25 Javascript
简单谈谈require模块化jquery和angular的问题
2017/06/23 jQuery
bootstrap模态框弹出和隐藏,动态改变中间内容的实例
2018/08/10 Javascript
使用vue-cli3新建一个项目并写好基本配置(推荐)
2019/04/24 Javascript
JavaScript对象属性操作实例解析
2020/02/04 Javascript
[01:27:43]VGJ.S vs TNC Supermajor 败者组 BO3 第三场 6.6
2018/06/07 DOTA
python实现登陆知乎获得个人收藏并保存为word文件
2015/03/16 Python
基于python的Tkinter实现一个简易计算器
2015/12/31 Python
Python编码类型转换方法详解
2016/07/01 Python
Python3.5迭代器与生成器用法实例分析
2019/04/30 Python
简单了解python反射机制的一些知识
2019/07/13 Python
Python lambda表达式filter、map、reduce函数用法解析
2019/09/11 Python
python实现统计代码行数的小工具
2019/09/19 Python
Python decimal模块使用方法详解
2020/06/08 Python
python 写一个文件分发小程序
2020/12/05 Python
澳大利亚领先的睡衣品牌:Peter Alexander
2016/08/16 全球购物
中国茶叶、茶具一站式网上购物商城:醉品茶城
2018/07/03 全球购物
娱乐地球:Entertainment Earth
2020/01/08 全球购物
Python面试题:Python里面如何生成随机数
2015/03/12 面试题
《蜗牛的奖杯》教后反思
2014/04/24 职场文书
求职自我推荐信
2014/06/25 职场文书
2014年建筑工程工作总结
2014/12/03 职场文书
环保建议书作文400字
2015/09/14 职场文书
高三数学教学反思
2016/02/18 职场文书
2016年党员干部公开承诺书
2016/03/24 职场文书
MySQL系列之九 mysql查询缓存及索引
2021/07/02 MySQL
Ubuntu18.04下QT开发Android无法连接设备问题解决实现
2022/06/01 Java/Android