jQuery之选择器

Posted 小伍前端

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了jQuery之选择器相关的知识,希望对你有一定的参考价值。

春分

春分这一天太阳直射地球赤道,南北半球季节相反,北半球是春分,在南半球来说就是秋分春分是伊朗、土耳其、阿富汗、乌兹别克斯坦等国的新年,有着3000年的历史。

这春天都已经过了一半了,小伍还是秋衣秋裤不离身,哈哈!直接进入正题吧!选择器再熟悉不过了,常用的不常用的都在这里了,您自己看吧!

一、基本选择器

1、#id:根据给定ID匹配一个元素
     例:$("#myDiv")

2、element:根据给定元素名匹配所有元素
     例:$("div")

3、.class:根据给定类匹配元素
     例:$(".myClass")

4、*: 匹配所有元素
     例:$("*")

5、selector1,selector2,selectorN:同类选择器
     例:$("div,span,.myClass")

二、层级选择器

1、ancestor descendant:匹配某父元素的所有后代元素
     例:$("form input")

2、parent>child:匹配某父元素的所有子元素
     例:$("form>input")

3、prev + next:匹配所有紧跟在prev元素后的next元素
     prev:任何有效选择器
     next:一个有效选择器并且紧接着第一个选择器
     例:$("label + input")

4、prev ~ siblings:匹配prev元素的所有同辈siblings元素
     siblings:一个选择器,并且它作为第一个选择器的同辈
     例:$("form ~ input")

三、基本伪类选择器

1、:first 获取第一个元素
     例:$("li:first")

2、:not(selector) 去除所有与给定选择器匹配的元素
     例:$("input:not(:checked)")

3、:even 匹配所有索引值为偶数的元素
     例: $("tr:even")

4、:odd 匹配所有索引值为偶数的元素
     例:$("tr:odd")

5、:eq(index) 匹配一个给定索引值得元素,从0开始
     例:$("tr:eq(1)")

6、:gt(index) 匹配所有大于给定索引值的元素,从0开始
     例:$("tr:gt(0)")

7、:lt(index) 匹配所有小于给定索引值的元素,从0开始

9、:last 获取最后一个元素
     例:$("li:last")

10、:header 匹配如H1\H2\H3之类的标题元素

11、:animated 匹配所有正在执行动画效果的元素

$("#run").click(function(){                
   $("div:not(:animated)").animate({left:"+=20"},1000);
})

12、:focus 匹配当前获取焦点的元素

13、:root 选择该文档的根元素(html)

四、内容

1、:contains(text) 匹配包含给定文本的元素
     例:$("div:contains('helloWorld')")

2、:empty 匹配所有不包含子元素或者文本的空元素

3、:parent 匹配含有子元素或者文本的元素

4、:has(selector) 匹配含有选择器所匹配的元素的元素

html:
   <div><p>Hello</p></div>
   <div>Hello again!</div>
js:
   $("div:has(p)").addClass("test");

结果:

[<div class="test"><p>Hello</p></div>]

五、可见性

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

2、:visible    匹配所有的可见元素

六、属性选择器

1、[attribute] 匹配包含给定属性的元素
     例:$("div[id]")

2、[attribute = value] 匹配给定的属性是某个特定值的元素
     例:$("input[name = 'newsletter']")

3、[attribute != value] 匹配所有不含有指定的属性,或者属性不等于特定值的元素
     例:$("input[name != 'newletter']")

4、[attribute ^= value] 匹配给定的属性是以某些值开始的元素

<input name="newsboy">
$("input[name ^= 'news']")

5、[attribute $= value] 匹配给定的属性是以某些值结尾的元素

<input name="newsletter">
$("input[name $= 'letter']")

6、[attribute *= value] 匹配给定的属性是以包含某些值得元素

<input name="man-news">
<input name="milkman">
<input name="letterman2">
$("input[name *= 'man']")

7、[attrSel1][attrSel2][attrSelN] 复合属性选择器,需要同时满足多个条件时使用

<input name="man-news" id="letterman">
$("input[id][name $= 'man']")

七、子元素

1、:first-child 匹配第一个子元素
     例:$("ul li:first-child")

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

<div>
   <span>1</span>
   <span>2</span>
   <span>3</span>
</div>
$("div:first-of-type")  //在每一个匹配div中查找第一个span

3、:last-child 匹配最后一个子元素
     例:$("ul li:last-child")

4、:last-of-type 选择所有相同的元素名称的最后一个兄弟元素
     例:$("div:last-of-type")

5、:nth-child 匹配其父元素下的第N个子或奇偶元素 从1开始
     例:$("ul li:nth-child(2)")

6、:nth-last-child() 匹配其父元素下的第N个子元素,从最后一个开始计数

<ul>
   <li>1</li>
   <li>2</li>
   <li>3</li>
   <li>4</li>
</ul>
$("ul li:nth-last-child(2)")
结果:[<li>3</li>]

7、:nth-last-of-type() 匹配其父元素下的第N个子元素,从最后一个开始计数
     例:$("ul li:nth-last-of-type(2)")

8、:nth-of-type() 选择同属于一个父元素之下,并且标签名相同的子元素中的第n个
     例:$("span:nth-of-type(2)")

9、:only-child 如果某个元素是父元素中唯一的子元素,则将会被匹配,否则不会被匹配

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

八、表单

1、:input 匹配所有input,textarea,select和button元素

<form>
    <input type="任意类型">
    <select><option></option></selcet>
    <textarea></textarea>
    <button></button>
</form>

$(":input")  //以上都可以匹配到

2、:text 匹配所有的单行文本框

<input sype="text">
$(":text")

3、:password 匹配所有密码框

4、:radio 匹配所有单选按钮

5、:checkbox 匹配所有复选框

6、:submit 匹配所有提交按钮

7、:image 匹配所有图像域

8、:reset 匹配所有重置按钮

9、:button 匹配所有按钮

10、:file 匹配所有文件域

九、表单对象属性

1、:enabled 匹配所有可用元素

2、:disabled 匹配所有不可用元素

3、:checked 匹配所有被选中的元素(复选框,单选框等,不包括select中的option)

4、:selected 匹配所有选中的option元素


以上是关于jQuery之选择器的主要内容,如果未能解决你的问题,请参考以下文章

jQuery 的选择器在 iframe 中不起作用

JavaScript 之 jquery选择器

jquery之selectors

jquery选择器之表单选择表单对象属性

JavaScript之jQuery-2 jQuery选择器(jQuery选择器基本选择器层次选择器过滤选择器表单选择器)

VSCode自定义代码片段——CSS选择器