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 submit()不能提交表单的解决方法
Apr 24 jQuery
jQuery表单设置值的方法
Jun 30 jQuery
浅谈jQuery框架Ajax常用选项
Jul 08 jQuery
vue单页应用中如何使用jquery的方法示例
Jul 27 jQuery
(模仿京东用户注册)用JQuery实现简单表单验证,初学者必看
Jan 08 jQuery
浅谈ajax在jquery中的请求和servlet中的响应
Jan 22 jQuery
使用Ajax和Jquery配合数据库实现下拉框的二级联动的示例
Jan 25 jQuery
jQuery+ajax实现动态添加表格tr td功能示例
Apr 23 jQuery
jQuery AJAX 方法success()后台传来的4种数据详解
Aug 08 jQuery
jQuery设置下拉框显示与隐藏效果的方法分析
Sep 15 jQuery
jquery实现上传图片功能
Jun 29 jQuery
jQuery实现简单评论区功能
Oct 26 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判断终端是手机还是电脑访问网站的思路及代码
2013/04/24 PHP
Yii操作数据库的3种方法
2014/03/11 PHP
WordPress中用于获取及自定义头像图片的PHP脚本详解
2015/12/17 PHP
PHP指定截取字符串中的中英文或数字字符的实例分享
2016/03/18 PHP
php图片上传类 附调用方法
2016/05/15 PHP
Yii2中关联查询简单用法示例
2016/08/10 PHP
使用PHPMailer发送邮件实例
2017/02/15 PHP
php关联数组与索引数组及其显示方法
2018/03/12 PHP
jquery插件之easing使用
2010/08/19 Javascript
JS判断不能为空实例代码
2013/11/26 Javascript
JavaScript中的标签语句用法分析
2015/02/10 Javascript
一不小心就做错的JS闭包面试题
2015/11/25 Javascript
JavaScript中通过提示框跳转页面的方法
2016/02/14 Javascript
静态页面实现 include 引入公用代码的示例
2017/09/25 Javascript
通过jquery.cookie.js实现记住用户名、密码登录功能
2018/06/20 jQuery
详解微信小程序框架wepy踩坑记录(与vue对比)
2019/03/12 Javascript
jQuery实现的图片点击放大缩小功能案例
2020/01/02 jQuery
vue el-upload上传文件的示例代码
2020/12/21 Vue.js
[04:22]DOTA2大事件之护国神翼
2020/08/14 DOTA
[50:02]完美世界DOTA2联赛PWL S2 Magma vs FTD 第三场 11.29
2020/12/03 DOTA
简单的python后台管理程序
2017/04/13 Python
pycharm下查看python的变量类型和变量内容的方法
2018/06/26 Python
Python2与Python3的区别实例分析
2019/04/11 Python
tensorflow查看ckpt各节点名称实例
2020/01/21 Python
python zip,lambda,map函数代码实例
2020/04/04 Python
巴西箱包、背包、钱包和旅行配件购物网站:Inovathi
2019/12/14 全球购物
计算机工程学院个人求职信
2013/10/05 职场文书
元旦晚会主持词
2014/03/24 职场文书
马智宇结婚主持词
2014/04/01 职场文书
大学计划书范文800字
2014/08/14 职场文书
2014年质检员工作总结
2014/11/18 职场文书
同学聚会邀请函
2015/01/30 职场文书
卢旺达饭店观后感
2015/06/05 职场文书
辅导员学期工作总结
2015/08/14 职场文书
56句经典英文座右铭
2019/08/09 职场文书
OpenCV-Python实现怀旧滤镜与连环画滤镜
2021/06/09 Python