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实现的MSBar3D图效果示例【附demo源码】
Mar 23 jQuery
各种选择框jQuery的选中方法(实例讲解)
Jun 27 jQuery
jQuery选取所有复选框被选中的值并用Ajax异步提交数据的实例
Aug 04 jQuery
jQuery实现全选、反选和不选功能
Aug 16 jQuery
jquery animate动画持续运动的实例
Nov 29 jQuery
jQuery+koa2实现简单的Ajax请求的示例
Mar 06 jQuery
Vue.js 通过jQuery ajax获取数据实现更新后重新渲染页面的方法
Aug 09 jQuery
详解JavaScript原生封装ajax请求和Jquery中的ajax请求
Feb 14 jQuery
解决JQuery的ajax函数执行失败alert函数弹框一闪而过问题
Apr 10 jQuery
JS实现点击生成UUID的方法完整实例【基于jQuery】
Jun 12 jQuery
Jquery+javascript实现支付网页数字键盘
Dec 21 jQuery
jquery插件实现悬浮的菜单
Apr 24 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面向对象全攻略 (六)__set() __get() __isset() __unset()的用法
2009/09/30 PHP
PHP 解决utf-8和gb2312编码转换问题
2010/03/18 PHP
Windows Server 2008 R2和2012中PHP连接MySQL过慢的解决方法
2016/07/02 PHP
PHP中spl_autoload_register()函数用法实例详解
2016/07/18 PHP
IE关闭时判断及AJAX注销案例学习
2013/02/18 Javascript
javascript显示用户停留时间的简单实例
2013/08/05 Javascript
Javascript中克隆一个数组的实现代码
2013/12/06 Javascript
javascript 用函数语句和表达式定义函数的区别详解
2014/01/06 Javascript
javascript中日期函数new Date()的浏览器兼容性问题
2015/09/05 Javascript
Angular 页面跳转时传参问题
2016/08/01 Javascript
AngularJS基础 ng-src 指令简单示例
2016/08/03 Javascript
微信小程序 教程之列表渲染
2016/10/18 Javascript
利用js查找数组中指定元素并返回该元素的所有索引示例
2017/03/29 Javascript
jQuery实现每隔一段时间自动更换样式的方法分析
2018/05/03 jQuery
在vue中使用express-mock搭建mock服务的方法
2018/11/07 Javascript
Vue配置marked链接添加target=&quot;_blank&quot;的方法
2019/07/19 Javascript
微信公众号平台接口开发 菜单管理的实现
2019/08/14 Javascript
python获取豆瓣电影简介代码分享
2014/01/16 Python
谈谈Python进行验证码识别的一些想法
2016/01/25 Python
Python浅复制中对象生存周期实例分析
2018/04/02 Python
使用Python编写Prometheus监控的方法
2018/10/15 Python
python中的subprocess.Popen()使用详解
2019/12/25 Python
在pytorch中对非叶节点的变量计算梯度实例
2020/01/10 Python
django教程如何自学
2020/07/31 Python
TensorFlow的环境配置与安装方法
2021/02/20 Python
英国奢华护肤、美容和Spa品牌:Temple Spa
2019/11/02 全球购物
竞选班长的演讲稿
2014/04/24 职场文书
敬老院献爱心活动总结
2014/07/08 职场文书
原料仓仓管员岗位职责
2014/07/08 职场文书
给医院的感谢信
2015/01/21 职场文书
单位收入证明范本
2015/06/18 职场文书
2016个人先进事迹材料范文
2016/03/01 职场文书
公司会议开幕词
2016/03/03 职场文书
开网店计划分析
2019/07/30 职场文书
七年级作文之英语老师
2019/10/28 职场文书
nginx代理实现静态资源访问的示例代码
2022/07/07 Servers