jQuery选择器是jQuery中最常用的,是jQuery的核心
大致有以下几种选择器:
- 基本选择器
- 多项选择器
- 层级选择器
- 属性选择器
###选择器相关
- 多数选择器内的标签名都要写在’'里面
- 匹配所有元素,返回含全部元素的数组
如:
$('element')[index]
注意[index]如果不写则是以数组的形式返回所选择的全部元素
排序是从0开始的
如选择所有div标签中的第一个
$('div)[0]
- 可返回多个元素,可使用
$(this).index();
返回各个元素的序号
首先记得引用j jQuery库,这里采用最原始的方式书写jQuery
下面是选择器介绍
#基本选择器
ID选择器 #id
- 根据给定的ID匹配一个元素
此处选择一个id为first的元素:
$('#first)
element选择器 element
- 选取带有指定元素名称的所有元素
$('element')
###class选择器 .class
- 根据给定的css类名匹配元素,返回含全部元素的数组
语法:
$(.class)·
还有一种用法是.class.class,可以选择两个关键字的类
例如:
$(.one.two)·//选择类名同时包含one和two的值的元素
###通配符选择器 *
- 匹配所有元素
语法:
$('*)
#多项选择器
示例:
`$(“selector1,selector2,selector3”);
- 将每一个选择器匹配到的元素合并后一起返回。
- 可以指定多个选择器,并将匹配到的元素合并到一个结果内(数组形式),并且选择后的顺序会完全遵循原来的标签顺序
- 选择器类型可以不一致
#层级选择器
###祖先后代选择器(Ancestor Descendant)
语法格式:
$('ancestor descendant');
- 在给定的祖先元素下匹配所有的后代元素
示例:
$('aside summary');//选择aside标签下所有的summary元素
- 会选中所有后代(包含儿孙代),运行效率偏低
###子代选择器
语法:
$('parent > child');
- 在给定的父级元素下匹配所有子元素
示例:
$('aside > details'); //选择aside元素下子代details元素
- 更精准,效率更高
### (‘prev + next’);` - 匹配所有紧接在prev元素后的next元素,上代元素必须是prev元素的next元素
示例:
$('summary + details'); //元素必须是紧接summary元素的details元素才会被选择
- 扩充了层级选择器的范围,也叫next选择器
- 选到1个next元素就不会再选了,即便后面有同名元素
###兄弟选择器 (‘prev ~ siblings’);` - 匹配所有紧接在prev元素后的所有siblings元素,上代元素必须是prev元素的siblings元素,并且只会选择在该代(层)所有的元素,不会往下一代(层)选择
示例:
$('summary ~ details'); //元素必须是紧接summary元素的所有details元素才会被选择
#属性选择器
###属性名选择器[attribute]
语法:
$('[attribute]')
- 把包含属性名的全部元素选出来
示例:
$('[class]') //选择所有带class属性的元素
###属性值选择器[attribute=value]
语法:
$('[attribute=value]')
- 把包含属性名且值为value的元素全部选出来
示例:
$('[class=tool]') //选择所有带class属性并且值为tool的元素
###非属性值选择器[attribute!=value]
语法:
$('[attribute!=value]')
- 把包含属性名并且值不为value的匹配的元素全部选出来
示例:
$('[class!=tool]') //选择所有带class属性并且值不为tool的元素
###[attribute^=value]属性选择器
语法:
$('[attribute^=value]')
- 把包含属性并且值为value开头的匹配的元素全部选出来
示例:
$('[class!=tool_]') //选择所有带class属性开头并且值为tool_开头的元素
###[attribute (’[attribute$=value]’)` - 把包含属性并且值为value结尾的匹配的元素全部选出来
示例:
$('[class$=_vs]') //选择所有带class属性并且值为_vs结尾的元素
###包含属性值选择器
语法:
$('[attribute*=value]')
- 把包含属性并且值包含value的匹配的元素全部选出来
示例:
$('[class*=vs]') //选择所有带class属性并且值包含vs结尾的元素
###多个属性选择器
语法:
`$("[selector1][selector2][selector3]"); - 把不同规则的属性全部选出来
示例:
$('[class*=vs][class=tool][class!=tool_]') //选择所有带class的属性中包含vs值的和class属性开头并且值不为tool_开头的元素和所有带class属性并且值为tool的元素
还有过滤器将放在下一小结,虽然两个其实功能都是选择
第一次写这类文章,不足之处还请多多指教。
简书传送门:https://www.jianshu.com/p/3b480a5724c3