第1章 WEB前端开发工程师-jQuery框架 1-5:jQuery 高级选择器

本节课介绍 jQuery 高级选择器。此前学的六种常规选择器可解决多数 DOM 节点选择问题,但特殊元素需高级选择器。早期因低版本浏览器不支持,其使用不普遍,而 jQuery 兼容。文中介绍了后代、子、next、nextAll 等选择器及等价方法,还提及层次选择器要求和方法传参注意事项。

                                                   jQuery 高级选择器

 

本节课所讲内容:

1. jQuery高级选择器

 

                                                                     主讲教师:Head老师

一. jQuery高级选择器

在前面我们学习六种最常规的选择器,一般来说通过这六种选择器基本上可以解决所有DOM 节点对象选择的问题。但在很多特殊的元素上,比如父子关系的元素,兄弟关系的元素,特殊属性的元素等等。在早期 CSS 的使用上,由于 IE6 等低版本浏览器不支持,所以这些高级选择器的使用也不具备普遍性,但随着 jQuery 兼容,这些选择器的使用频率也越来越高。

选择器

CSS模式

jQuery 模式

描述

后代选择器

ul li a {}

$('ul li a')

获取追溯到的多个 DOM 对象

子选择器

div > p {}

$('div p')

只获取子类节点的多个 DOM 对象

next 选择器

div + p {}

$('div + p')

只获取某节点后一个同级DOM对象

nextAll 选择器

div ~ p {}

$('div ~ p')

获取某节点后面所有同级DOM对象

在层次选择器中,除了后代选择器之外,其他三种高级选择器是不支持 IE6 的,而 jQuery

却是兼容 IE6 的。

//后代选择器

$('#box p').css('color', 'red'); //全兼容

jQuery 为后代选择器提供了一个等价 find()方法

$('#box').find('p').css('color', 'red'); //和后代选择器等价

//子选择器,孙子后失明

#box > p { //IE6 不支持

color:red;

}

$('#box > p').css('color', 'red'); //兼容 IE6

jQuery 为子选择器提供了一个等价 children()方法:

$('#box').children('p').css('color', 'red'); //和子选择器等价

选择器 CSS 模式 jQuery 模式 描述

后代选择器 ul li a {} $('ul li a') 获取追溯到的多个 DOM 对象

子选择器 div > p {} $('div p') 只获取子类节点的多个 DOM 对象

next 选择器 div + p {} $('div + p') 只获取某节点后一个同级DOM对象

nextAll 选择器 div ~ p {} $('div ~ p') 获取某节点后面所有同级DOM对象

//next 选择器(下一个同级节点)

#box + p { //IE6 不支持

color:red;

}

$('#box+p').css('color', 'red'); //兼容 IE6

jQuery 为 next 选择器提供了一个等价的方法 next():

$('#box').next('p').css('color', 'red'); //和 next 选择器等价

//nextAll 选择器(后面所有同级节点)

#box ~ p { //IE6 不支持

color:red;

}

$('#box ~ p').css('color', 'red'); //兼容 IE6

jQuery 为 nextAll 选择器提供了一个等价的方法 nextAll():

$('#box').nextAll('p').css('color', 'red'); //和 nextAll 选择器等价

层次选择器对节点的层次都是有要求的,比如子选择器,只有子节点才可以被选择到,

孙子节点和重孙子节点都无法选择到。next 和 nextAll 选择器,必须是同一个层次的后一个

和后 N 个,不在同一个层次就无法选取到了。

在 find()、next()、nextAll()和 children()这四个方法中,如果不传递参数,就相当于传递

了“*”,即任何节点,我们不建议这么做,不但影响性能,而且由于精准度不佳可能在复杂

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值