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插件FusionCharts绘制2D双折线图效果示例【附demo源码】
Apr 14 jQuery
jquery中封装函数传递当前元素的方法示例
May 05 jQuery
jQuery插件imgAreaSelect基础讲解
May 26 jQuery
简单谈谈require模块化jquery和angular的问题
Jun 23 jQuery
jQuery remove()过滤被删除的元素(推荐)
Jul 18 jQuery
React中jquery引用的实现方法
Sep 12 jQuery
vue.js2.0点击获取自己的属性和jquery方法
Feb 23 jQuery
详解jQuery获取特殊属性的值以及设置内容
Nov 14 jQuery
jQuery使用bind动态绑定事件无效的处理方法
Dec 11 jQuery
如何使用CSS3+JQuery实现悬浮墙式菜单
Jun 18 jQuery
jQuery实现鼠标滑动切换图片
May 27 jQuery
jquery实现点击左右按钮切换图片
Jan 27 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
php二维码生成以及下载实现
2017/09/28 PHP
如何解决PHP获取不到SESSION信息之一般情况
2019/10/10 PHP
Javascript base64编码实现代码
2011/12/02 Javascript
关闭页面window.location事件未执行的原因及解决方法
2014/09/01 Javascript
jQuery 1.9移除了$.browser可以使用$.support来替代
2014/09/03 Javascript
JavaScript中实现单体模式分享
2015/01/29 Javascript
JavaScript实现的SHA-1加密算法完整实例
2016/02/02 Javascript
vue2中的keep-alive使用总结及注意事项
2017/12/21 Javascript
Angular 组件之间的交互的示例代码
2018/03/24 Javascript
Vue用v-for给循环标签自身属性添加属性值的方法
2018/10/18 Javascript
Node.js实现用户评论社区功能(体验前后端开发的乐趣)
2019/05/09 Javascript
深入剖析JavaScript instanceof 运算符
2019/06/14 Javascript
Vue+tracking.js 实现前端人脸检测功能
2020/04/16 Javascript
从零开始用webpack构建一个vue3.0项目工程的实现
2020/09/24 Javascript
Echarts.js无法引入问题解决方案
2020/10/30 Javascript
vue 公共列表选择组件,引用Vant-UI的样式方式
2020/11/02 Javascript
JavaScript基于SVG的图片切换效果实例代码
2020/12/15 Javascript
[01:04:01]2014 DOTA2华西杯精英邀请赛5 24 DK VS VG
2014/05/25 DOTA
简单的编程0基础下Python入门指引
2015/04/01 Python
不同版本中Python matplotlib.pyplot.draw()界面绘制异常问题的解决
2017/09/24 Python
Python堆排序原理与实现方法详解
2018/05/11 Python
python筛选出两个文件中重复行的方法
2018/05/31 Python
python机器学习之KNN分类算法
2018/08/29 Python
Python中利用aiohttp制作异步爬虫及简单应用
2018/11/29 Python
Python中typing模块与类型注解的使用方法
2019/08/05 Python
python实现多进程通信实例分析
2019/09/01 Python
Python模拟FTP文件服务器的操作方法
2020/02/18 Python
CSS3 实现童年的纸飞机
2019/05/05 HTML / CSS
魔声耳机官方网站:Monster是世界第一品牌的高性能耳机
2016/10/26 全球购物
校园环保标语
2014/06/13 职场文书
委托证明书
2014/09/17 职场文书
2014法制宣传日活动总结范文
2014/11/01 职场文书
2014年妇幼保健工作总结
2014/12/08 职场文书
2015年后备干部工作总结
2015/05/15 职场文书
python实现简单反弹球游戏
2021/04/12 Python
Linux中一对多配置日志服务器的详细步骤
2022/07/23 Servers