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+PHP+Mysql实现抽奖程序
Apr 12 jQuery
jQuery 添加样式属性的优先级别方法(推荐)
Jun 08 jQuery
浅谈ajax在jquery中的请求和servlet中的响应
Jan 22 jQuery
JQuery元素快速查找与操作
Apr 22 jQuery
JQuery Ajax动态加载Table数据的实例讲解
Aug 09 jQuery
jQuery实现参数自定义的文字跑马灯效果
Aug 15 jQuery
jQuery实现的淡入淡出图片轮播效果示例
Aug 29 jQuery
jQuery实现经典的网页3D轮播图封装功能【附源码下载】
Feb 15 jQuery
jQuery Ajax async=&gt;false异步改为同步时,解决导致浏览器假死的问题
Jul 22 jQuery
JQuery常用简单动画操作方法回顾与总结
Dec 07 jQuery
jquery实现垂直手风琴导航栏
Feb 18 jQuery
jQuery实现的移动端图片缩放功能组件示例
May 01 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实现zip压缩文件解压缩代码分享(简单易懂)
2014/05/10 PHP
destoon之一键登录设置
2014/06/21 PHP
PHP使用xmllint命令处理xml与html的方法
2014/12/15 PHP
DOMAssitant最新版 DOMAssistant 2.5发布
2007/12/25 Javascript
javascript时间自动刷新实现原理与步骤
2013/01/06 Javascript
js 对小数加法精度处理示例说明
2013/12/27 Javascript
jQuery操作CheckBox的方法介绍(选中,取消,取值)
2014/02/04 Javascript
Knockout自定义绑定创建方法
2015/12/26 Javascript
jquery实现树形菜单完整代码
2015/12/29 Javascript
jQuery简单实现点击文本框复制内容到剪贴板上的方法
2016/08/01 Javascript
vue.js使用代理和使用Nginx来解决跨域的问题
2018/02/03 Javascript
vue中动态设置meta标签和title标签的方法
2018/07/11 Javascript
微信小程序上传多图到服务器并获取返回的路径
2019/05/05 Javascript
vue中使用elementUI组件手动上传图片功能
2019/12/13 Javascript
JavaScript实现跟随鼠标移动的盒子
2021/01/28 Javascript
[01:17:12]职来职往完美电竞专场
2014/09/18 DOTA
Python中使用 Selenium 实现网页截图实例
2014/07/18 Python
Python实现正弦信号的时域波形和频谱图示例【基于matplotlib】
2018/05/04 Python
python os用法总结
2018/06/08 Python
详解python分布式进程
2018/10/08 Python
python3常用的数据清洗方法(小结)
2019/10/31 Python
flask 使用 flask_apscheduler 做定时循环任务的实现
2019/12/10 Python
Django ORM 查询表中某列字段值的方法
2020/04/30 Python
应届生服装设计自我评价
2013/09/20 职场文书
文秘专业个人求职信
2013/12/22 职场文书
教师辞职报告范文
2014/01/20 职场文书
研讨会通知
2015/04/27 职场文书
电影红河谷观后感
2015/06/11 职场文书
百家讲坛观后感
2015/06/12 职场文书
中秋晚会致辞
2015/07/31 职场文书
一篇合格的广告文案,其主要目的是什么?
2019/07/12 职场文书
写作技巧:如何撰写一份优秀的营销策划书
2019/08/13 职场文书
nginx 多个location转发任意请求或访问静态资源文件的实现
2021/03/31 Servers
JavaScript实现登录窗体
2021/06/22 Javascript
宫崎骏十大动画电影,宫崎骏好看的动画电影排名
2022/03/22 日漫
Spring中bean集合注入的方法详解
2022/07/07 Java/Android