JQuery选择器小结

背景

虽然近几年随着ReactJs、VueJs等框架的流行,jQuery使用的频率不是很高了。但是如果维护一些旧项目还是存在大量使用jQuery的地方。这里总结一下jQuery选择器的各种写法,以备不时之需。

基本选择器

选择器描述返回示例
#idID选择器单个元素$("#cancleBtn")选取ID为cancleBtn的元素
.class样式选择器集合元素$(".test") 选取所有样式为test的元素
element标签选择器集合元素$(“div”) 选取所有的div元素

这三个是最基本也是最常用的。

层次选择器

通过dom元素之间的层次关系来获取后代元素、子元素、相邻元素、同辈元素等:

选择器描述返回示例
$(“s1 s2”)后代选择器(多个选择器空格隔开)集合元素$(“div span”)选取div里的所有span元素
$(“parent > child”)子元素选择器集合元素$(“div > span”)选取div元素下标签名是span元素
(注意和后代选择器的区别)
$(“prev + next”)选取紧接在prev元素之后的next元素集合元素$(".one + span")选取class为one的下一个
span同辈元素
$(“prev ~ siblings”)选取prev元素之后的所有siblings元素集合元素$("#hm ~ div")选取id为hm之
后的所有div同辈元素
$("div span")等价于$("div").find("span")
$("div > span")等价于$("div").children("span")
$(".one + span")等价于$(".one").next("span")
$("#hm ~ div")等价于$("#hm").nextAll("div")

过滤选择器

通过特定的过滤规则来筛选出所需的dom元素,与css中的伪类选择器语法相同,即选择器都以一个冒号(:)开头。按照不同的过滤规则,过滤选择器可以分为基本过滤、内容过滤、可见性过滤、属性过滤、子元素过滤和表单属性过滤选择器。

1.基本过滤选择器
选择器描述返回示例
:first选取第一个元素单个元素$(“div:first”)选取所有div元素中第1个div元素
:last选取最后一个元素单个元素$(“div:last”)选取所有div元素中最后一个div元素
:not(selector)去除所有与给定选择
器匹配的元素
集合元素$(“input:not(.myClass)”)选取class不是
myClass的所有div元素
:even选取索引是偶数的元素集合元素$(“input:even”)选取索引是偶数的<input>元素
:odd选取索引是奇数的元素集合元素$(“input:odd”)选取索引是奇数的<input>元素
:eq(index)选取索引等于index的元素单个元素$(“input:eq(1)”)选取索引等于1的<input>元素
:gt(index)选取索引大于index的元素集合元素$(“input:gt(1)”)选取索引大于1的<input>元素
:lt(index)选取索引小于index的元素集合元素$(“input:gt(1)”)选取索引小于1的<input>元素
:header选取所有的标题元素集合元素$(":header")选取网页中的所有<h1>、<h2>、<h3>等
:animated选取当前正在执行动画的元素集合元素$(“div:animated”)选取正在执行动画的div元素
:focus选取当前获取焦点的元素集合元素$(":focus")选取当前获取焦点的元素
2.内容过滤选择器
选择器描述返回示例
:contains(text)选取含有文本内容为text的元素集合元素$(“div:contains(‘www’)”)选取含有文本“www”的div元素
:empty选取不含子元素或者文本的空元素集合元素$(“div:empty”)选取div空元素
:has(selector)选取含有选择器匹配的元素的元素集合元素$(“div:has(‘p’)”)选取含有<p>元素的div元素
:parent选取含有子元素或文本的元素集合元素$(“div:parent”)选取拥有子元素的div元素
3.可见性过滤选择器
选择器描述返回示例
:hidden选取所有不可见的元素集合元素$(“input:hidden”)选取所有不可见的input元素
:visible选取所有可见的元素集合元素$(“input:visible”)选取所有可见的input元素
4.属性过滤选择器
选择器描述返回示例
[attribute]选取拥有此属性的元素集合元素$(“div[id]”)选取拥有id属性的div元素
[attribute=value]选取属性值为value的元素集合元素$(“div[title=test]”)选取title属性为test的div元素
[attribute!=value]选取属性值不等于value的元素集合元素$(“div[title!=test]”)选取title属性不等于test
的div元素,也包括没有title属性的div元素
[attribute^=value]选取属性值以value开头的元素集合元素$(“div[title^=test]”)选取title属性以test开头的div元素

更多详见《jQuery基础教程》第2版55页。

5.子元素过滤选择器

:nth-child(index/odd/even/equation) 选取每个父元素下的第index个子元素或着奇偶元素(index从1算起)
:first-child 选取每个父元素的第一个子元素
:last-child 选取每个父元素的最后一个子元素
:only-child 如果某个元素是它父元素的唯一子元素,那么会被匹配。

6.表单对象属性过滤选择器
选择器描述
:enabled选取所有可用的元素
:disabled选取所有不可用的元素
:checded选取所有被选中的元素(单选框、复选框)
:selected选取所有被选中的选项元素(下拉列表)

表单选择器

选择器描述
:input选取所有input、textarea、select、button元素
:text选取所有的单行文本框
:password选取所有的密码框
:radio选取所有的单选框
:checkbox选取所有的多选框
:submit选取所有的提交按钮
:image选取所有的图像按钮
:reset选取所有的重置按钮
:button选取所有的按钮
:file选取所有的上传域
:hidden选取所有不可见元素

注:以上摘自之前阅读《jQuery基础教程》的读书笔记,最近遇到项目中使用jQuery选择器的地方,又翻出来看看,比较容易搞混的是后代选择器$(".class1 .class2 .class3") 和 选择同时满足多个样式的元素$(".class1.class2.class3");如果同时使用多个选择器逗号相隔$(".class1,.class2")。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值