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获取table下某一行某一列的值实现代码
Apr 07 jQuery
jQuery.ajax向后台传递数组问题的解决方法
May 12 jQuery
jquery.uploadView 实现图片预览上传功能
Aug 10 jQuery
jQuery实现可兼容IE6的淡入淡出效果告警提示功能示例
Sep 20 jQuery
jQuery中 DOM节点操作方法大全
Oct 12 jQuery
jquery一键控制checkbox全选、反选或全不选
Oct 16 jQuery
jQuery实现所有验证通过方可提交的表单验证
Nov 21 jQuery
jQuery实现动态加载(按需加载)javascript文件的方法分析
May 31 jQuery
基于jquery实现的tab选项卡功能示例【附源码下载】
Jun 10 jQuery
使用JQuery自动完成插件Auto Complete详解
Jun 18 jQuery
jQuery pager.js 插件动态分页功能实例分析
Aug 02 jQuery
jQuery实现可编辑的表格
Dec 11 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之CodeIgniter学习笔记
2013/06/17 PHP
php 删除目录下N分钟前创建的所有文件的实现代码
2013/08/10 PHP
免费手机号码归属地API查询接口和PHP使用实例分享
2014/04/10 PHP
详解PHP中mb_strpos的使用
2018/02/04 PHP
PHPStorm 2020.1 调试 Nodejs的多种方法详解
2020/09/17 NodeJs
javascript 带有滚动条的表格,标题固定,带排序功能.
2009/11/13 Javascript
在iframe里的页面编写js,实现在父窗口上创建动画效果展开和收缩的div(不变动iframe父窗口代码)
2011/12/20 Javascript
ASP.NET jQuery 实例3 (在TextBox里面阻止复制、剪切和粘贴事件)
2012/01/13 Javascript
jquery+html5制作超酷的圆盘时钟表
2015/04/14 Javascript
js实现数组转换成json
2015/06/26 Javascript
JavaScript事件学习小结(五)js中事件类型之鼠标事件
2016/06/09 Javascript
jquery日历插件e-calendar升级版
2016/11/10 Javascript
leaflet的开发入门教程
2016/11/17 Javascript
JS正则子匹配实例分析
2016/12/22 Javascript
解决vue build打包之后首页白屏的问题
2018/03/06 Javascript
vue-cli在 history模式下的配置详解
2019/11/26 Javascript
JavaScript中CreateTextFile函数
2020/08/30 Javascript
[05:35]DOTA2英雄梦之声_第13期_拉比克
2014/06/21 DOTA
[01:10]为家乡而战!完美世界城市挑战赛全国总决赛花絮
2019/07/25 DOTA
Python在Windows和在Linux下调用动态链接库的教程
2015/08/18 Python
python素数筛选法浅析
2018/03/19 Python
Django项目中包含多个应用时对url的配置方法
2018/05/30 Python
python能做哪方面的工作
2020/06/15 Python
python3环境搭建过程(利用Anaconda+pycharm)完整版
2020/08/19 Python
Python QT组件库qtwidgets的使用
2020/11/02 Python
Python爬虫之Selenium实现窗口截图
2020/12/04 Python
如何删除一个表里面的重复行
2013/07/13 面试题
专营店会计助理岗位职责
2013/11/29 职场文书
一份婚庆公司创业计划书
2014/01/11 职场文书
时尚休闲吧创业计划书
2014/01/25 职场文书
超市创业计划书
2014/09/15 职场文书
计划生育个人总结
2015/03/02 职场文书
倡议书的格式写法
2015/04/28 职场文书
道歉短信大全
2015/05/12 职场文书
python入门之算法学习
2021/04/22 Python
关于Python中进度条的六个实用技巧分享
2022/04/05 Python