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加密密码到cookie的实现代码
Apr 18 jQuery
jQuery常用选择器详解
Jul 17 jQuery
详解jquery选择器的原理
Aug 01 jQuery
jQuery实现打开网页自动弹出遮罩层或点击弹出遮罩层功能示例
Oct 19 jQuery
利用jquery如何从json中读取数据追加到html中
Dec 01 jQuery
jquery实现点击a链接,跳转之后,该a链接处显示背景色的方法
Jan 18 jQuery
jquery简单实现纵向的无缝滚动代码实例
Apr 01 jQuery
JS秒杀倒计时功能完整实例【使用jQuery3.1.1】
Sep 03 jQuery
jQuery操作元素追加内容示例
Jan 10 jQuery
JQuery事件冒泡和默认行为代码实例
May 13 jQuery
jquery实现简单自动轮播图效果
Jul 29 jQuery
jQuery中event.target和this的区别详解
Aug 13 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
关于文本留言本的分页代码
2006/10/09 PHP
PHP--用万网的接口实现域名查询功能
2012/12/13 PHP
CodeIgniter输出中文乱码的两种解决办法
2014/06/12 PHP
PHP判断json格式是否正确的实现代码
2017/09/20 PHP
firebug的一个有趣现象介绍
2011/11/30 Javascript
JS实现可关闭的对联广告效果代码
2015/09/14 Javascript
js带缩略图的图片轮播效果代码分享
2015/09/14 Javascript
JavaScript继承模式粗探
2016/01/12 Javascript
sencha ext js 6 快速入门(必看)
2016/06/01 Javascript
JavaScript获取IP获取的是IPV6 如何校验
2016/06/12 Javascript
深入理解JavaScript中的块级作用域、私有变量与模块模式
2016/10/31 Javascript
JS实现侧边栏鼠标经过弹出框+缓冲效果
2017/03/29 Javascript
bootstrap daterangepicker汉化以及扩展功能
2017/06/15 Javascript
js is_valid_filename验证文件名的函数
2017/07/19 Javascript
详解Angular2表单-模板驱动的表单(Template-Driven Forms)
2017/08/04 Javascript
nodejs使用express获取get和post传值及session验证的方法
2017/11/09 NodeJs
jQuery.extend 与 jQuery.fn.extend的用法及区别实例分析
2018/07/25 jQuery
Vue 动态组件与 v-once 指令的实现
2019/02/12 Javascript
Javascript中的this,bind和that使用实例
2019/12/05 Javascript
vue-router的hooks用法详解
2020/06/08 Javascript
Vue开发中常见的套路和技巧总结
2020/11/24 Vue.js
[51:17]Mski vs VGJ.S Supermajor小组赛C组 BO3 第三场 6.3
2018/06/04 DOTA
[01:08:29]DOTA2-DPC中国联赛定级赛 RNG vs Aster BO3第一场 1月9日
2021/03/11 DOTA
在pandas中一次性删除dataframe的多个列方法
2018/04/10 Python
完美解决Pycharm无法导入包的问题 Unresolved reference
2018/05/18 Python
使用Python中的reduce()函数求积的实例
2019/06/28 Python
详解python polyscope库的安装和例程
2020/11/13 Python
HTML5中视频音频的使用详解
2017/07/07 HTML / CSS
eDreams加拿大:廉价航班、酒店和度假
2019/03/29 全球购物
美国唇部护理专家:Sara Happ
2019/06/19 全球购物
Order by的几种用法
2013/06/16 面试题
《学棋》教后反思
2014/04/14 职场文书
爱耳日宣传活动总结
2014/07/05 职场文书
政风行风建设责任书
2014/07/23 职场文书
2014年人力资源部工作总结
2014/11/19 职场文书
具结保证书
2015/01/17 职场文书