层级选择器:
- jQuery层级选择器—-包含选择器、子选择器、相邻选择器、兄弟选择器4种
- 包含选择器:
$("a b")
在给定的祖先元素下匹配所有后代元素。(不受层级限制) - 子选择器:
$("parent > child")
在给定的父元素下匹配所有子元素。 - 相邻选择器:
$("prev + next")
匹配所有紧接在prev
元素后的next
元素。 - 兄弟选择器:
$("prev ~ siblings")
匹配prev
元素之后的所有sibling
元素。
- 包含选择器:
案例:
1 | <BODY> |
综合应用:
1 | <body> |
常用伪类选择器:
可以看作是一种特殊的类选择符
- 选择器
:first
匹配找到的第1个元素:last
匹配找到的最后一个元素:eq
匹配一个给定索引值的元素:even
匹配所有索引值为偶数的元素:odd
匹配所有索引值为奇数的元素:gt(index)
匹配所有大于给定索引值的元素:lt(index)
匹配所有小于给定索引值的元素:not
去除所有与给定选择器匹配的元素
特定位置选择器
- :
first/:last/:eq(index)
例:
1 | <table> |
指定范围选择器
:even/:odd/:gt(index)/:lt(index)
例:
1 | <table> |
排除选择器
:not
非
例:
1 | <table> |
选择器优化:
使用合适的选择器表达式可以提高性能、增强语义并简化逻辑。常用的选择器中,
ID
选择器速度最快,其次是类型选择器。- 多用
ID
选择器 - 少直接使用
class
选择器 - 多用父子关系,少用嵌套关系
- 缓存
jQuery
对象
- 多用
使用过滤器
jQuery
提供了2种选择文档元素的方式:选择器和过滤器- 类过虑器:根据元素的类属性来进行过滤操作。
hasClass(className)
:判断当前jQuery
对象中的某个元素是否包含指定类名,包含返回true
,不包含返回false
- 下标过滤器:精确选出指定下标元素
eq(index)
:获取第N个元素。index
是整数值,下标从0开始
- 表达式过滤器
filter(expr)/(fn)
:筛选出与指定表达式/函数匹配的元素集合。- 功能最强大的表达式过滤器,可接收函数参数,也可以是简单的选择器表达式
- 映射
map(callback)
:将一组元素转换成其他数组 - 清洗
not(expr)
:删除与指定表达式匹配的元素 - 截取
slice(start,end)
:选取一个匹配的子集
- 类过虑器:根据元素的类属性来进行过滤操作。
查找
- 向下查找后代元素
children():
取得所有元素的所有子元素集合(子元素)find():
搜索所有与指定表达式匹配的元素(所有后代元素中查找)
- 查找兄弟元素
siblings()
查找当前元素的兄弟