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 22 jQuery
jQuery插件FusionCharts绘制的2D双面积图效果示例【附demo源码】
Apr 11 jQuery
jQuery输入框密码的显示隐藏【代码分享】
Apr 29 jQuery
jQuery导航条固定定位效果实例代码
May 26 jQuery
jQuery实现返回顶部按钮和scroll滚动功能[带动画效果]
Jul 05 jQuery
jQuery实现广告条滚动效果
Aug 22 jQuery
jQuery获取复选框选中的当前行的某个字段的值
Sep 15 jQuery
360提示[高危]使用存在漏洞的JQuery版本的解决方法
Oct 27 jQuery
jQuery图片加载失败替换默认图片方法汇总
Nov 29 jQuery
jQuery事件blur()方法的使用实例讲解
Mar 30 jQuery
JQuery animate动画应用示例
May 14 jQuery
JQuery发送ajax请求时中文乱码问题解决
Nov 14 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实现HTTP断点续传的方法
2015/06/17 PHP
jQuery中:checked选择器用法实例
2015/01/04 Javascript
JavaScript实现单击下拉框选择直接跳转页面的方法
2015/07/02 Javascript
js实现防止被iframe的方法
2015/07/03 Javascript
JS正则表达式比较常见用法
2016/01/26 Javascript
JS实现CheckBox复选框全选、不选或全不选功能
2020/07/28 Javascript
JavaScript获取当前运行脚本文件所在目录的方法
2016/02/03 Javascript
JavaScript定时器实现的原理分析
2016/12/06 Javascript
js实现textarea限制输入字数
2017/02/13 Javascript
JavaScript实现向select下拉框中添加和删除元素的方法
2017/03/07 Javascript
详解React开发必不可少的eslint配置
2018/02/05 Javascript
使用Vuex解决Vue中的身份验证问题
2018/09/28 Javascript
使用canvas实现一个vue弹幕组件功能
2018/11/30 Javascript
详解如何用webpack4从零开始构建react开发环境
2019/01/27 Javascript
Python聚类算法之DBSACN实例分析
2015/11/20 Python
python的构建工具setup.py的方法使用示例
2017/10/23 Python
python 生成图形验证码的方法示例
2018/11/11 Python
解决pip install xxx报错SyntaxError: invalid syntax的问题
2018/11/30 Python
详解python中list的使用
2019/03/15 Python
python使用KNN算法识别手写数字
2019/04/25 Python
pyqt 实现为长内容添加滑轮 scrollArea
2019/06/19 Python
pandas.DataFrame的pivot()和unstack()实现行转列
2019/07/06 Python
Python学习笔记之函数的定义和作用域实例详解
2019/08/13 Python
Python3离线安装Requests模块问题
2019/10/13 Python
python多线程并发及测试框架案例
2019/10/15 Python
在flask中使用python-dotenv+flask-cli自定义命令(推荐)
2020/01/05 Python
pytorch查看通道数 维数 尺寸大小方式
2020/05/26 Python
植村秀美国官网:Shu Uemura美国
2019/03/19 全球购物
2014新年元旦活动策划方案
2014/02/18 职场文书
心理咨询承诺书
2014/05/20 职场文书
司法局火灾防控方案
2014/06/05 职场文书
结婚保证书(卖身契)
2015/02/26 职场文书
逃课检讨书范文
2015/05/06 职场文书
帝企鹅日记观后感
2015/06/10 职场文书
小学开学典礼新闻稿
2015/07/17 职场文书
如何使用PyCharm及常用配置详解
2021/06/03 Python