jQuery选择器

92 阅读3分钟

1、jQuery简介

image.png

官网地址:jquery.com/

jQuery在线手册:www.runoob.com/manual/jque…

 

       jQuery是一个快速、简洁且功能丰富的JavaScript库。它以“写得更少,做得更多”(write less, do more)为核心理念,极大地简化了JavaScript编程。通过封装JavaScript常用的功能代码,jQuery提供了一种简便的JavaScript设计模式,优化了HTML文档操作、事件处理、动画设计和Ajax交互。

2、jQuery选择器概述

       jQuery选择器是jQuery库的核心功能之一,借鉴了CSS选择器的语法,并在此基础上进行了扩展和增强,允许开发者通过类名、ID、属性、层级关系等多种方式精确地查找和筛选页面上的元素。这一特性对于事件处理、样式修改、DOM操作等方面至关重要。

3、jQuery选择器分类

      jQuery选择器类似于CSS选择器,用于“查找”(或选择)HTML页面中的元素。它基于元素名、id、类名、属性等条件来选取元素。一旦选中了元素,就可以对这些元素执行各种操作,如修改属性、添加样式、绑定事件等。

3.1 基本选择器

➢      ID选择器:通过元素的ID属性选取元素,如$("#myId")选择ID为myId的元素。

➢      元素选择器:通过HTML标签名选取元素,如$("p")选择所有

元素。

➢      类选择器:通过元素的class属性选取元素,如$(".myClass")选择所有class为myClass的元素。

➢      通配选择器:匹配所有元素,如$("*")选择每一个元素

➢      并集选择器:将每一个选择器匹配到的元素合并后一起返回,如$("div,span,p.myClass")选择所有div元素、span元素、类名为myClass的p元素

3.2 层级选择器

3.2.1 后代选择器

选取某个元素内部的所有后代元素,例如$("div p")会选取所有<div>元素内部的<p>元素。

image.png

3.2.2 子代选择器

选取某个元素内部的直接子元素,例如$("div > p")会选取所有<div>元素的直接子<p>元素。

image.png

3.2.3 相邻选择器

选取某个元素紧邻的下一个元素,例如$("p + div")会选取每个<p>元素紧邻的下一个<div>元素。

3.2.4 兄弟选择器

选取某个元素的所有同辈元素,例如$("p ~ div")会选取所有与<p>元素同辈的<div>元素。

3.3 过滤选择器

3.3.1 基本过滤选择器

:first,选取第一个元素。 image.png

:last,选取最后一个元素。 image.png

:not(selector),去除所有与给定选择器匹配的元素。

image.png :even,基于索引值选取偶数元素,例如$("tr:even") 选择所有的tr元素的第0,2,4... ...个元素。

:odd,基于索引值选取奇数元素,例如$("tr:odd") 选择所有的tr元素的第1,3,5... ...个元素 。

:eq(index),选取指定索引的元素。

image.png

:gt(index) ,选取索引大于指定值的元素,例如$('div:gt(3)')获取索引大于3 的div。

 :lt(index),选取索引小于指定值的元素,例如 $('div:lt(3)')获取索引小于3 的div。

:lang,匹配有一个语言值等于所提供的语言代码,

:header,选取所有标题元素,如 <h1><h6>,例如$(':header')获取所有标题元素。

:animated,用于选择当前正在执行动画的所有元素。

:focus, 用于选取当前获得焦点的元素。

:root, 选择器用于选取文档的根元素

:target,选择器用于选取当前活动的目标元素

3.3.2 内容过滤选择器

:contains(text),选取包含指定文本的元素,如$("div:contains('jack')") 选择所有div中含有jack文本的元素

:empty,选取空元素,例如$("td:empty") 选择所有为空的td元素

:has(selector),选取包含特定子元素的元素,例如$("div:has(p)") 选择所有含有p标签的div元素 。

:parent,选取包含子节点(包括文本节点)的元素

3.3.3 可见性过滤选择器

:visible 和 :hidden,选取可见或隐藏的元素。

image.png

3.3.4 属性过滤选择器

[attribute]:选取带有指定属性的元素。

[attribute=value]:选取属性值等于指定值的元素。

image.png [attribute!=value]:选取属性值不等于指定值的元素,例如$("input[name!='jack']") 选择所有的name属性不等于'jack'的input元素。

[attribute^=value]:选取属性值以指定值开头的元素,例如$("input[name^='jack']") 选择所有的name属性以'jack'开头的input元素

[attribute=value]:选取属性值以指定值结尾的元素,例如=value]:选取属性值以指定值结尾的元素,例如("input[name$='jack']") 选择所有的name属性以'jack'结尾的input元素

[attribute*=value]:选取属性值中包含指定值的元素,例如$("input[name*='jack']") 选择所有的name属性包含'jack'的input元素

3.3.5 子元素过滤选择器

:first-child,选取其父元素的第一个子元素。

image.png :last-child,选取其父元素的最后一个子元素。

image.png :nth-child(n),选取其父元素的第n个子元素。

image.png

:first-of-type,选择所有相同的元素名称的第一个兄弟元素。

:last-of-type,选择的所有元素之间具有相同元素名称的最后一个兄弟元素。

:nth-of-type(n),选择同属于一个父元素之下,并且标签名相同的子元素中的第n个。

:nth-last-child(n),选取其父元素的倒数第n个子元素。

:nth-last-of-type(n),选择的所有他们的父级元素的第n个子元素,计数从最后一个元素到第一个

:only-child,如果某元素是其父元素的唯一子元素,则选取它

:only-of-type,选择所有没有兄弟元素,且具有相同的元素名称的元素。

3.3.6 表单过滤选择器:

:input,选取所有 <input><textarea><select> <button> 元素。

:text,选取所有文本输入框。

image.png

:password,选取所有密码输入框。

:radio,选取所有单选按钮。

:checkbox,选取所有复选框。

:submit,选取所有提交按钮。

:image,选取所有图像按钮。

:reset,选取所有重置按钮。

:button,选取所有按钮。

:file,选取所有文件上传域。

:hidden,匹配所有不可见元素,或者type为hidden的元素

3.3.7表单对象属性过滤选择器

:enabled 和 :disabled,选取启用或禁用的表单元素。

:checked,匹配所有选中的被选中元素(复选框、单选框等,不包括select中的option)。 image.png   :selected,选取所有被选中的 元素,例如$("select option:selected") 选择所有的select 的后代元素中被selected的元素

4、总结

       通过组合使用这些选择器,你可以创建复杂的查询,精确地选择并操作HTML文档中的元素。在实际开发中,选择器是jQuery中非常核心且常用的功能之一,它们大大简化了DOM元素的查找和操作过程。