jquery的9大选择器

12,410次阅读
没有评论

共计 5187 个字符,预计需要花费 13 分钟才能阅读完成。

1. 基本选择器
 基本选择器是 JQuery 最常用的选择器,也是最简单的选择器,它通过元素 id、class 和标签名来查找 DOM 元素(在网页中 id 只能使用一次,class 允许重复使用)。所谓的网页中 id 只能使用一次的意思是说,一个网页中的 id 是不可以重复的,也就是具有唯一性。

1、#id     
用法: $("#myDiv");    返回值  单个元素的组成的集合
说明: 这个就是直接选择 html 中的 id="myDiv"

2、Element 
用法: $("div")     返回值  集合元素
说明: element 的英文翻译过来是”元素”, 所以 element 其实就是 html 已经定义的标签元素, 例如 div, 
input, a 等等.

3、class          
用法: $(".myClass")      返回值  集合元素
说明: 这个标签是直接选择 html 代码中 class="myClass" 的元素或元素组(因为在同一 html 页面中
class 是可以存在多个同样值的)

4、*          
用法: $("*")      返回值  集合元素
说明: 匹配所有元素, 多用于结合上下文来搜索

5、selector1, selector2, selectorN      
用法: $("div,span,p.myClass")    返回值  集合元素
说明: 将每一个选择器匹配到的元素合并后一起返回. 你可以指定任意多个选择器, 并将匹配到的元素合
并到一个结果内。其中 p.myClass 是表示匹配元素
p class="myClass"

2. 层级选择器
 只有这个方法返回的是 JQuery 对象才能进行链式操作。如果想通过 DOM 元素之间的层次关系来获取特定元素, 例如后代元素, 子元素, 相邻元素, 兄弟元素等, 则需要使用层次选择器。

1、ancestor descendant
用法: $("form input") ;   返回值  集合元素
说明: 在给定的祖先元素下匹配所有后代元素. 这个要和 "arent > child" 区分开。祖先元素中查找,包含子元素和子元素的子元素。2、parent > child
用法: $("form> input") ;    返回值  集合元素
说明: 在给定的父元素下匹配所有子元素。注意: 要区分好后代元素与子元素
父元素中查找,只包含子元素,不包含子元素的子元素。3、prev + next
用法: $("label + input") ;   返回值  集合元素
说明: 匹配所有紧接在 prev 元素后的 next 元素

4、prev ~ siblings
用法: $("form ~ input") ;    返回值  集合元素
说明: 匹配 prev 元素之后的所有 siblings 元素. 注意: 是匹配之后的元素, 不包含该元素在内, 并且 JQuery 的 siblings 方法匹配的是和 prev 同辈的元素, 其后辈元素不被匹配.
注意:  ("prev ~ div") 选择器只能选择 "# prev" 元素后面的同辈元素; 而 jQuery 中的方法 siblings() 与前后位置无关, 只要是同辈节点就可以选取

3. 过滤选择器
 找到一堆页面元素,我们可以对这些元素加过滤条件,找到我们想要的这些元素,然后进行过滤。通过特定的过滤规则来筛选出所需的 DOM 元素, 该选择器都以“:”开头。
 按照不同的过滤规则, 过滤选择器可以分为基本过滤, 内容过滤, 可见性过滤, 属性过滤, 子元素过滤和表单对象属性过滤选择器。
(1) 基础过滤选择器

1、:first
用法: $("tr:first") ;   返回值  单个元素的组成的集合
说明: 匹配找到的第一个元素

2、:last
用法: $("tr:last")   返回值  集合元素
说明: 匹配找到的最后一个元素. 与 :first 相对应.

3、:not(selector)
用法: $("input:not(:checked)")   返回值  集合元素
说明: 去除所有与给定选择器匹配的元素. 有点类似于”非”, 意思是没有被选中的 input(当 input 的
type=”checkbox”).

4、:even
用法: $("tr:even")   返回值  集合元素
说明: 匹配所有索引值为偶数的元素,从 0 开始计数.js 的数组都是从 0 开始计数的. 例如要选择 table 中的行, 因为是从 0 开始计数, 所以 table 中的第一个 tr 就为偶数 0.

5、:odd
用法: $("tr:odd") 返回值  集合元素
说明: 匹配所有索引值为奇数的元素, 和:even 对应, 从 0 开始计数

6、:eq(index)
用法: $("tr:eq(0)")    返回值  集合元素
说明: 匹配一个给定索引值的元素.eq(0)就是获取第一个 tr 元素. 括号里面的是索引值, 不是元素排列数

7、:gt(index)
用法: $("tr:gt(0)")    返回值  集合元素
说明: 匹配所有大于给定索引值的元素

8、:lt(index)
用法: $("tr:lt(2)")    返回值  集合元素  
说明: 匹配所有小于给定索引值的元素

9、:header(固定写法)
用法: $(":header").css("background", "#EEE")    返回值  集合元素
说明: 匹配如 h1, h2, h3 之类的标题元素. 这个是专门用来获取 h1,h2 这样的标题元素

10、:animated(固定写法)   返回值  集合元素
说明: 匹配所有正在执行动画效果的元素

(2)内容过滤选择器
 内容过滤选择器的过滤规则主要体现在它所包含的子元素和文本内容上。

1、:contains(text)
用法: $("div:contains('John')")    返回值  集合元素
说明: 匹配包含给定文本的元素. 这个选择器比较有用,当我们要选择的不是 dom 标签元素时, 它就派上
了用场了, 它的作用是查找被标签”围”起来的文本内容是否符合指定的内容的。2、:empty
用法: $("td:empty")   返回值  集合元素
说明: 匹配所有不包含子元素或者文本的空元素。3、:has(selector)
用法:  $("div:has('.mini')")返回值  集合元素
说明: 匹配含有选择器所匹配的元素的元素。4、:parent
用法: $("td:parent")   返回值  集合元素
说明: 匹配含有子元素或者文本的元素. 注意: 这里是 ":parent”, 可不是".parent”! 感觉与上面讲的”:empty”形成反义词。

(3)可见度过滤选择器

可见度过滤选择器是根据元素的可见和不可见状态来选择相应的元素。

1、:hidden
用法: $(”tr:hidden”)  返回值  集合元素
说明: 匹配所有的不可见元素,input 元素的 type 属性为“hidden”的话也会被匹配到。意思是 css 中 display:none 和 input type="hidden" 的都会被匹配到. 同样, 要在脑海中彻底分清楚冒
号 ":", 点号 "." 和逗号 "," 的区别。2、:visible
用法: $("tr:visible")  返回值  集合元素
说明: 匹配所有的可见元素

(4)属性过滤选择器
属性过滤选择器的过滤规则是通过元素的属性来获取相应的元素。

1、[attribute]
用法: $("div[id]") ;  返回值  集合元素
说明: 匹配包含给定属性的元素。例子中是选取了所有带”id”属性的 div 标签。2、[attribute=value]
用法: $("input[name='newsletter']").attr("checked", true);    返回值  集合元素
说明: 匹配给定的属性是某个特定值的元素. 例子中选取了所有 name 属性是 newsletter 的 input 元素。3、[attribute!=value]$("div[title!='test']").css("background","yellow");
用法: $(”input[name!='newsletter']“).attr("checked", true);   返回值  集合元素

说明: 匹配所有不含有指定的属性,或者属性不等于特定值的元素。此选择器等价于:not 此选择器等价于:not([attr=value]), 要匹配含有特定属性但不等于特定值的元素, 请使用[attr]:not([attr=value])。之前看到的:not 派上了用场。4、[attribute^=value]
用法: $(”input[name^=‘news’]“)  返回值  集合元素 
说明: 匹配给定的属性是以某些值开始的元素., 我们又见到了这几个类似于正则匹配的符号。5、[attribute$=value]
用法: $("input[name$='letter']")  返回值  集合元素 
说明: 匹配给定的属性是以某些值结尾的元素。6、[attribute*=value]
用法: $("input[name*='man']")   返回值  集合元素
说明: 匹配给定的属性是以包含某些值的元素。7、[attributeFilter1][attributeFilter2][attributeFilterN]
用法: $("input[id][name$='man']")  返回值  集合元素
说明: 复合属性选择器, 需要同时满足多个条件时使用. 又是一个组合, 这种情况我们实际使用的时候很常
用. 这个例子中选择的是所有含有 id 属性, 并且它的 name 属性是以 man 结尾的元素。

(5)子元素过滤选择器

1、:nth-child(index/even/odd/equation)$("div[class=one] :nth-child(2)").css("background","yellow");
用法: $("ul li:nth-child(2)")   返回值  集合元素
说明: 匹配其父元素下的第 N 个子或奇偶元素. 这个选择器和之前说的基础过滤 (Basic Filters) 中的
eq() 有些类似, 不同的地方就是前者是从 0 开始, 后者是从 1 开始。2、:first-child$("div[class=one] :first-child")
用法: $("ul li:first-child")    返回值  集合元素 
说明: 匹配第一个子元素。':first' 只匹配一个元素, 而此选择符将为每个父元素匹配一个子元素。这里需要特别点的记忆下区别。3、:last-child
用法: $("ul li:last-child")      返回值  集合元素
说明: 匹配最后一个子元素.':last' 只匹配一个元素, 而此选择符将为每个父元素匹配一个子元素。4、: only-child
 用法: $("ul li:only-child")   返回值  集合元素 
 说明: 如果某个元素是父元素中唯一的子元素, 那将会被匹配。如果父元素中含有其他元素, 那将不会被匹配。意思就是: 只有一个子元素的才会被匹配!

(6)表单过滤选择器

1、:enabled
用法: $("input:enabled")    返回值  集合元素
说明: 匹配所有可用元素。意思是查找所有 input 中不带有 disabled="disabled" 的 input。不为
disabled, 当然就为 enabled。2、:disabled
用法: $("input:disabled")    返回值  集合元素
说明: 匹配所有不可用元素。与上面的 enable 是相对应的。3、:checked
用法: $("input:checked")   返回值  集合元素
说明: 匹配所有选中的被选中元素(复选框、单选框等,不包括 select 中的 option)。这话说起来有些绕口。4、:selected
用法: $(”select option:selected”)   返回值  集合元素
说明: 匹配所有选中的 option 元素.$("select>option:selected")

(7)表单选择器

1、:input
用法: $(":input") ;   返回值  集合元素
说明: 匹配所有 input, textarea, select 和 button 元素。2、:text
用法: $(":text") ;  返回值  集合元素
说明: 匹配所有的单行文本框。3、:password
用法: $(":password") ; 返回值  集合元素
说明: 匹配所有密码框。4、:radio
用法: $(":radio") ; 返回值  集合元素
说明: 匹配所有单选按钮。5、:checkbox
用法: $(":checkbox") ; 返回值  集合元素
说明: 匹配所有复选框。6、:submit
用法: $(":submit") ;   返回值  集合元素
说明: 匹配所有提交按钮.

7、:image
用法: $(":image")   返回值  集合元素
说明: 匹配所有图像域。8、:reset
用法: $(":reset") ;  返回值  集合元素
说明: 匹配所有重置按钮。9、:button
用法: $(":button") ;  返回值  集合元素
说明: 匹配所有按钮. 这个包括直接写的元素 button。10、:file
用法: $(":file") ;  返回值  集合元素
说明: 匹配所有文件域。11、:hidden
用法: $("input:hidden") ; 返回值  集合元素
说明: 匹配所有不可见元素,或者 type 为 hidden 的元素. 这个选择器就不仅限于表单了, 除了匹配 input 中的 hidden 外, 那些 style 为 hidden 的也会被匹配。

原文地址: jquery 的 9 大选择器

    正文完
     0
    Yojack
    版权声明:本篇文章由 Yojack 于2024-09-30发表,共计5187字。
    转载说明:
    1 本网站名称:优杰开发笔记
    2 本站永久网址:https://yojack.cn
    3 本网站的文章部分内容可能来源于网络,仅供大家学习与参考,如有侵权,请联系站长进行删除处理。
    4 本站一切资源不代表本站立场,并不代表本站赞同其观点和对其真实性负责。
    5 本站所有内容均可转载及分享, 但请注明出处
    6 我们始终尊重原创作者的版权,所有文章在发布时,均尽可能注明出处与作者。
    7 站长邮箱:laylwenl@gmail.com
    评论(没有评论)