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 29 jQuery
jQuery Json数据格式排版高亮插件json-viewer.js使用方法详解
Jun 12 jQuery
jQuery Validate格式验证功能实例代码(包括重名验证)
Jul 18 jQuery
原生JS与jQuery编写简单选项卡
Oct 30 jQuery
jQuery实现页码跳转式动态数据分页
Dec 31 jQuery
jQuery实现参数自定义的文字跑马灯效果
Aug 15 jQuery
jQuery滑动效果实现方法分析
Sep 05 jQuery
Jquery和CSS实现选择框重置按钮功能
Nov 08 jQuery
jQuery利用FormData上传文件实现批量上传
Dec 04 jQuery
jQuery实现的五星点评功能【案例】
Feb 18 jQuery
jQuery选择器之基本过滤选择器用法实例分析
Feb 19 jQuery
jquery实现直播视频弹幕效果
Feb 25 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 cookies中删除的一般赋值方法
2011/05/07 PHP
PHP使用Face++接口开发微信公众平台人脸识别系统的方法
2015/04/17 PHP
php获取当前页面完整URL地址
2015/12/30 PHP
CI框架源码解读之利用Hook.php文件完成功能扩展的方法
2016/05/18 PHP
JavaScript延迟加载
2021/03/09 Javascript
javascript使用activex控件的代码
2011/01/27 Javascript
jquery ajax学习笔记2 使用XMLHttpRequest对象的responseXML
2011/10/16 Javascript
innerHTML动态添加html代码和脚本兼容多个浏览器
2014/10/11 Javascript
jQuery中:visible选择器用法实例
2014/12/30 Javascript
在JS方法中返回多个值的方法汇总
2015/05/20 Javascript
JavaScript中的lastIndexOf()方法使用详解
2015/06/06 Javascript
jquery制做精致的倒计时特效
2016/06/13 Javascript
Require.JS中的几种define定义方式示例
2017/06/01 Javascript
详解vue2.0的Element UI的表格table列时间戳格式化
2017/06/13 Javascript
js实现图片旋转 js滚动鼠标中间对图片放大缩小
2017/07/05 Javascript
Vue.js分页组件实现:diVuePagination的使用详解
2018/01/10 Javascript
关于Vue在ie10下空白页的debug小结
2018/05/02 Javascript
微信小程序class封装http代码实例
2019/08/24 Javascript
vue监听dom大小改变案例
2020/07/29 Javascript
微信小程序实现底部弹出框
2020/11/18 Javascript
python hbase读取数据发送kafka的方法
2018/12/27 Python
利用django+wechat-python-sdk 创建微信服务器接入的方法
2019/02/20 Python
python实现文件的备份流程详解
2019/06/18 Python
简单了解Python生成器是什么
2019/07/02 Python
python-web根据元素属性进行定位的方法
2019/12/13 Python
Python3标准库glob文件名模式匹配的问题
2020/03/13 Python
Django ORM实现按天获取数据去重求和例子
2020/05/18 Python
华为的Java面试题
2014/03/07 面试题
北京振戎融通Java面试题
2015/09/03 面试题
护理工作感言
2014/01/16 职场文书
将相和教学反思
2014/02/04 职场文书
党员教师一句话承诺
2014/05/30 职场文书
爱心捐书倡议书
2015/04/27 职场文书
2016年庆“七一”主题党日活动总结
2016/04/05 职场文书
Python基础之pandas数据合并
2021/04/27 Python
SQL Server数据库备份和恢复数据库的全过程
2022/06/14 SQL Server