Home  >  Article  >  Web Front-end  >  The most complete summary of jQuery selectors

The most complete summary of jQuery selectors

怪我咯
怪我咯Original
2017-04-06 11:19:361393browse

1. #id: Match an element based on the given ID

<p id="myId">这是第一个p标签</p>
<p id="not">这是第二个p标签</p> <script type="text/javascript"> $(function(){
        $("#myId").css("color","red");
    }); </script>

result:

This is the first p tag

This is the second p tag

2. element: matches all elements based on the given element tag name

<p>这是p标签1</p>
<p>这是p标签2</p> <p>这是p标签</p> <script type="text/javascript">
    $(function(){
        $("p").css("color","red");
    }); </script>

result:

This is p tag 1

This is p tag 2

This is p tag

3. .class: Match the element

<p class="myClass">这是第一个p标签</p>
<p class="not">这是第二个p标签</p> <script type="text/javascript"> $(function(){
        $(".myClass").css("color","red");
    }); </script>

based on the given css class name result:

This is the first p tag

This is the second p tag

4. *: Matches all elements, mostly used to search in context

<p>这是p标签</p>
<p>这是p标签</p> <script type="text/javascript"> $(function(){
        $("*").css("color","red");
    }); </script>

result:

This is p tag

This is p tag

5. Multiple selectors selector1,selector2,selectorN: Specify any number of selectors and merge the matched elements into one result

<p class="myP">这是第一个p标签</p>
<p class="not">这是第二个p标签</p> <p id="myp">这是第一个p标签</p> <p id="not">这是第二个p标签</p>
<script type="text/javascript">
    $(function(){
        $("p.myP,p#myp").css("color","red");
    });
</script>

result:

This is the first p tag

This is the second p tag

This is the first p tag

This is the second p tag

6. ancestor descendant: Match all descendant elements under the given ancestor element

<p> <span>这是第一个span标签</span> <p> <span>这是第二个span标签</span> </p>
</p> <script type="text/javascript"> $(function(){
        $("p span").css("color","red");
    }); </script>

result:

This is the first span tag

This is the second span tag

7. parent > child: Match all child elements under the given parent element

<p> <span>这是第一个span标签</span> <p> <span>这是第二个span标签</span> </p>
</p> <script type="text/javascript"> $(function(){
        $("p > span").css("color","red");
    }); </script>

result:

This is the first span tag

This is the second span tag

8. prev + next: Match all next elements immediately after the prev element

<p></p> <p>这是第一个p标签</p>
<p>这是第二个p标签</p> <script type="text/javascript"> $(function(){
        $("p + p").css("color","red");
    }); </script>

result:

This is the first p tag

This is the second p tag

9. prev ~ siblings: matches all siblings after the prev element

<p>这是第一个p标签</p>
<p>
    <p>这是第二个p标签</p> </p> <p>这是第三个p标签</p>
<script type="text/javascript">
    $(function(){
        $("p ~ p").css("color","red");
    });
</script>

result:

This is the first p tag

This is the second p tag

This is the third p tag

10. :first : 获取第一个元素

<p> <p>这是第一个p标签</p> <p>这是第二个p标签</p>
    <p>这是第三个p标签</p> </p> <script type="text/javascript">
    $(function(){
        $("p:first").css("color","red");
    }); </script>

结果:

这是第一个p标签

这是第二个p标签

这是第三个p标签

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

<p class="del">这是第一个p标签</p>
<p class="del">这是第二个p标签</p> <p>这是第三个p标签</p> <script type="text/javascript">
    $(function(){
        $("p:not(.del)").css("color","red");
    }); </script>

结果:

这是第一个p标签

这是第二个p标签

这是第三个p标签

12.:even : 匹配所有索引值为偶数的元素,从 0 开始计数

<p>这是索引值为0的p标签</p>
<p>这是索引值为1的p标签</p> <p>这是索引值为2的p标签</p> <p>这是索引值为3的p标签</p>
<script type="text/javascript">
    $(function(){
        $("p:even").css("color","red");
    });
</script>

结果:

这是索引值为0的p标签

这是索引值为1的p标签

这是索引值为2的p标签

这是索引值为3的p标签

13. :odd : 匹配所有索引值为奇数的元素,从 0 开始计数

<p>这是索引值为0的p标签</p>
<p>这是索引值为1的p标签</p> <p>这是索引值为2的p标签</p> <p>这是索引值为3的p标签</p>
<script type="text/javascript">
    $(function(){
        $("p:odd").css("color","red");
    });
</script>

结果:

这是索引值为0的p标签

这是索引值为1的p标签

这是索引值为2的p标签

这是索引值为3的p标签

14. :eq(index) : 匹配一个给定索引值的元素

<p>这是索引值为0的p标签</p>
<p>这是索引值为1的p标签</p> <p>这是索引值为2的p标签</p> <script type="text/javascript">
    $(function(){
        $("p:eq(1)").css("color","red");
    }); </script>

结果:

这是索引值为0的p标签

这是索引值为1的p标签

这是索引值为2的p标签

15. :gt(index) : 匹配所有大于给定索引值的元素

<p>这是索引值为0的p标签</p>
<p>这是索引值为1的p标签</p> <p>这是索引值为2的p标签</p> <script type="text/javascript">
    $(function(){
        $("p:gt(1)").css("color","red");
    }); </script>

结果:

这是索引值为0的p标签

这是索引值为1的p标签

这是索引值为2的p标签

16. :lang(language) : 选择指定语言的所有元素

<p lang="not">这是lang="not"的p标签</p>
<p lang="en">这是lang="en"的p标签</p> <p lang="en-us">这是lang="en-us"的p标签</p> <script type="text/javascript">
    $(function(){
        $("p:lang(en)").css("color","red");
    }); </script>

结果:

这是lang="not"的p标签

这是lang="en"的p标签

这是lang="en-us"的p标签

17. :last() : 获取最后个元素

<p> <p>这是第一个p标签</p> <p>这是第二个p标签</p>
    <p>这是第三个p标签</p> </p> <script type="text/javascript">
    $(function(){
        $("p:last").css("color","red");
    }); </script>

结果:

这是第一个p标签

这是第二个p标签

这是第三个p标签

18. :lt(index) : 匹配所有小于给定索引值的元素

<p>这是索引值为0的p标签</p>
<p>这是索引值为1的p标签</p> <p>这是索引值为2的p标签</p> <script type="text/javascript">
    $(function(){
        $("p:lt(1)").css("color","red");
    }); </script>

结果:

这是索引值为0的p标签

这是索引值为1的p标签

这是索引值为2的p标签

19. :header : 匹配如 h1, h2, h3之类的标题元素

<p>这是p标签</p>
<h3>这是h3标签</h3> <h4>这是h4标签</h4> <script type="text/javascript">
    $(function(){
        $(":header").css("color","red");
    }); </script>

结果:

这是p标签

这是h3标签

这是h4标签

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

<!--对不在执行动画的元素执行一个动画--> <button id="run">Run</button> <p style="width:100px;height:100px;border:1px solid #f00;position:absolute;"></p> <script type="text/javascript">
$(function(){
    $("#run").click(function(){
        $("p:not(:animated)").animate({left:100+"px"},1000);
    });
});

由于此处无法插入js代码,请自行复制代码查看效果

21. :focus : 匹配当前获取焦点的元素

<input type="text" /> <script type="text/javascript"> $(function(){
    $("input").focus(); //让input自动获取焦点 $("input:focus").css("background","red");
});

结果:

22. :root : 选择该文档的根元素,在HTML中,文档的根元素,和$(":root")选择的元素一样,永远是100db36a723c770d327fc0aef2ce13b1元素

<script type="text/javascript">
    $(":root").css("background-color","yellow"); </script>

23. :target : 选择由文档URI的格式化识别码表示的目标元素

例如,给定的URI http:// example.com/#foo, $( "p:target" ),将选择54dc3eb51a675dab569ef3c24a8930bc元素。

24. :contains(text) : 匹配包含给定文本的元素

<p>boys</p>
<p>girls</p> <p>boys and girls</p> <script type="text/javascript">
    $(function(){
        $("p:contains(&#39;boys&#39;)").css("color","red");
    }); </script>

结果:

boys

girls

boys and girls

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

<p>这是有内容的p标签</p>
<p></p> <p>这是有内容的p标签</p> <p></p> <script type="text/javascript">
    $(function(){
        $("p:empty").css({"width":30,"height":30,"background":"red"});
    }); </script>

结果:

这是有内容的p标签

这是有内容的p标签

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

<p>这是包含p元素的p标签
    <p>这是p标签中的p标签</p>
</p> <p>这是没有p元素的p标签</p> <script type="text/javascript">
    $(function(){
        $("p:has(p)").css("color","red");
    }); </script>

结果:

这是包含p元素的p标签

这是p标签中的p标签

这是没有p元素的p标签

27. :parent : 匹配含有子元素或者文本的元素

<p> <p>这是p标签中的p标签</p> </p>
<p>这是有内容的p标签</p> <p></p> <script type="text/javascript">
    $(function(){
        $("p:parent").css("color","red");
    }); </script>

结果:

这是p标签中的p标签

这是有内容的p标签

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

<p style="display: none;">这是隐藏的p标签</p>
<p>这是显示的p标签</p> <script type="text/javascript"> $(function(){
       $("p:hidden").css("color","red");
                console.log($("p:hidden")); //结果:获取到隐藏的p }); </script>

结果:

The most complete summary of jQuery selectors

29. :visible : 匹配所有的可见元素

<p style="display: none;">这是隐藏的p标签</p>
<p>这是显示的p标签</p> <script type="text/javascript"> $(function(){
        $("p:visible").css("color","red"); console.log($("p:visible")); //结果:获取到显示的p }); </script>

结果:

The most complete summary of jQuery selectors

30. [attribute] : 匹配包含给定属性的元素

<p class="myp">这是有类名的p标签</p>
<p>这是没类名的p标签</p> <script type="text/javascript"> $(function(){
        $("p[class]").css("color","red");
    }); </script>

结果:

这是有类名的p标签

这是没类名的p标签

31. [attribute=value] : 匹配给定的属性是某个特定值的元素

<p class="myp">这是第一个p标签</p>
<p class="not">这是第二个p标签</p> <script type="text/javascript"> $(function(){
        $("p[class=&#39;myp&#39;]").css("color","red");
    }); </script>

结果:

这是第一个p标签

这是第二个p标签

32. [attribute!=value] : 匹配所有不含有指定的属性,或者属性不等于特定值的元素

<p class="myp">这是第一个p标签</p>
<p class="not">这是第二个p标签</p> <script type="text/javascript"> $(function(){
        $("p[class!=&#39;myp&#39;]").css("color","red");
    }); </script>

结果:

这是第一个p标签

这是第二个p标签

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

<p class="myp">这是第一个p标签</p>
<p class="not">这是第二个p标签</p> <p class="myBaby">这是第三个p标签</p> <script type="text/javascript">
    $(function(){
        $("p[class^=&#39;my&#39;]").css("color","red");
    }); </script>

结果:

这是第一个p标签

这是第二个p标签

这是第三个p标签

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

<p class="myp">这是第一个p标签</p>
<p class="not">这是第二个p标签</p> <p class="yourp">这是第三个p标签</p> <script type="text/javascript">
    $(function(){
        $("p[class$=&#39;p&#39;]").css("color","red");
    }); </script>

结果:

这是第一个p标签

这是第二个p标签

这是第三个p标签

35. [attribute*=value] : 匹配给定的属性是以包含某些值的元素

<p class="mypOne">这是第一个p标签</p>
<p class="not">这是第二个p标签</p> <p class="mypTwo">这是第三个p标签</p> <script type="text/javascript">
    $(function(){
        $("p[class*=&#39;p&#39;]").css("color","red");
    }); </script>

结果:

这是第一个p标签

这是第二个p标签

这是第三个p标签

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

<p id="myp" class="mypOne">这是第一个p标签</p>
<p class="not">这是第二个p标签</p> <p class="mypTwo">这是第三个p标签</p> <script type="text/javascript">
    $(function(){
        $("p[id][class*=&#39;p&#39;]").css("color","red");
    }); </script>

结果:

这是第一个p标签

这是第二个p标签

这是第三个p标签

37. :first-child : 匹配第一个子元素,类似的 :first 匹配第一个元素,而此选择符将为每个父元素匹配一个子元素

<p> <p>这是第一个p中的第一个p标签</p> <p>这是第一个p中的第二个p标签</p>
</p> <p> <p>这是第二个p中的第一个p标签</p> <p>这是第二个p中的第二个p标签</p> </p> <script type="text/javascript">
    $(function(){
        $("p p:first-child").css("color","red");
    }); </script>

结果:

这是第一个p中的第一个p标签

这是第一个p中的第二个p标签

这是第二个p中的第一个p标签

这是第二个p中的第二个p标签

38. :first-of-type : 结构化伪类,匹配E的父元素的第一个E类型的子元素

<p> <p>这是第一个p中的p标签</p> <p>这是第一个p中的第一个p标签</p>
    <p>这是第一个p中的第二个p标签</p> </p> <p> <p>这是第二个p中的第一个p标签</p> <p>这是第二个p中的第二个p标签</p>
</p> <script type="text/javascript"> $(function(){
        $("p:first-of-type").css("color","red");
    }); </script>

结果:

这是第一个p中p标签

这是第一个p中的第一个p标签

这是第一个p中的第二个p标签

这是第二个p中的第一个p标签

这是第二个p中的第二个p标签

39. :last-child : 匹配最后一个子元素,类似的 :last 只匹配最后一个元素,而此选择符将为每个父元素匹配最后一个子元素

<p> <p>这是第一个p中的第一个p标签</p> <p>这是第一个p中的第二个p标签</p>
</p> <p> <p>这是第二个p中的第一个p标签</p> <p>这是第二个p中的第二个p标签</p> </p> <script type="text/javascript">
    $(function(){
        $("p p:last-child").css("color","red");
    }); </script>

结果:

这是第一个p中的第一个p标签

这是第一个p中的第二个p标签

这是第二个p中的第一个p标签

这是第二个p中的第二个p标签

40. :last-of-type : 结构化伪类,匹配E的父元素的最后一个E类型的子元素,大体的意思跟 :first-of-type 差不多,只是一个是第一个元素,一个是最后一个元素

<p> <p>这是第一个p中的第一个p标签</p> <p>这是第一个p中的第二个p标签</p>
    <p>这是第一个p中的p标签</p> </p> <p> <p>这是第二个p中的第一个p标签</p> <p>这是第二个p中的第二个p标签</p>
</p> <script type="text/javascript"> $(function(){
        $("p:last-of-type").css("color","red");
    }); </script>

结果:

这是第一个p中的第一个p标签

这是第一个p中的第二个p标签

这是第一个p中的p标签

这是第二个p中的第一个p标签

这是第二个p中的第二个p标签

41. :nth-child : 匹配其父元素下的第N个子或奇偶元素

注意!:eq(index)是从0开始,而这里的 :nth-child的序号是从1开始 的

<p> <p>这是第一个p中的第一个p标签</p> <p>这是第一个p中的第二个p标签</p>
</p> <p> <p>这是第二个p中的第一个p标签</p> <p>这是第二个p中的第二个p标签</p> </p> <script type="text/javascript">
    $(function(){
        $("p p:nth-child(2)").css("color","red");
    }); </script>

结果:

这是第一个p中的第一个p标签

这是第一个p中的第二个p标签

这是第二个p中的第一个p标签

这是第二个p中的第二个p标签

42. :nth-last-child : 选择所有他们父元素的第n个子元素,计数从最后一个元素开始到第一个,序号从1开始

注意:要有父级元素

<p> <p>这是p中的第一个p标签</p> <p>这是p中的第二个p标签</p>
    <p>这是p中的第三个p标签</p> </p> <script type="text/javascript">
    $(function(){
        $("p p:nth-last-child(1)").css("color","red");
    }); </script>

结果:

这是p中的第一个p标签

这是p中的第二个p标签

这是p中的第三个p标签

43. :nth-last-of-type : 选择的所有他们的父级元素的第n个子元素,计数从最后一个元素到第一个,序号从1开始

<p> <p>这是p中的第一个p标签</p> <p>这是p中的第二个p标签</p>
    <p>这是p中的第三个p标签</p> <p>这是p中的p标签</p> </p>
<script type="text/javascript">
    $(function(){
        $("p:nth-last-of-type(1)").css("color","red");
    });
</script>

结果:

这是p中的第一个p标签

这是p中的第二个p标签

这是p中的第三个p标签

这是p中的p标签

44. :nth-of-type : 选择同属于一个父元素之下,并且标签名相同的子元素中的第n个,序号从1开始

<p> <p>这是p标签</p> <p>这是第一个p标签</p>
    <p>
        <p>这是第二个p标签</p> <p>这是第三个p标签</p> </p>
    <p>这是第四个p标签</p> </p> <script type="text/javascript">
    $(function(){
        $("p:nth-of-type(2)").css("color","red");
    }); </script>

结果:

这是p标签

这是第一个p标签

这是第二个p标签

这是第三个p标签

这是第四个p标签

45. :only-child : 如果某个元素是父元素中唯一的子元素,那将会被匹配,如果父元素中含有其他元素,那将不会被匹配

<p> <p>这是p标签</p> <p>这是第一个p标签</p>
</p> <p> <p>这是第二个p标签</p> </p> <script type="text/javascript">
    $(function(){
        $("p:only-child").css("color","red");
    }); </script>

结果:

这是p标签

这是第一个p标签

这是第二个p标签

46. :only-of-type : 选择所有没有兄弟元素,且具有相同的元素名称的元素,如果父元素有相同的元素名称的其他子元素,那么没有元素会被匹配

<p> <p>这是p标签</p> <p>这是第一个p标签</p>
</p> <p> <p>这是第二个p标签</p> <p>这是第三个p标签</p> </p> <script type="text/javascript">
    $(function(){
        $("p:only-of-type").css("color","red");
    }); </script>

结果:

这是p标签

这是第一个p标签

这是第二个p标签

这是第三个p标签

47. :input : 匹配所有 input, textarea, select 和 button 元素

<form>
    <input type="text" />
    <input type="button" />
    <input type="checkbox" />
    <input type="password" />
    <input type="radio" />
    <input type="reset" />
    <input type="submit" />
    <select><option>Option</option></select>
    <textarea></textarea>
    <button>Button</button>
</form>
<script type="text/javascript">
    $(function(){
        $(":input").css("color","red");
    });
</script>

结果:

The most complete summary of jQuery selectors

Option

48. :text : 匹配所有的单行文本框

<form>
    <input type="text" />
    <input type="password" />
    <input type="radio" />
    <input type="reset" />
    <input type="submit" />
</form>
<script type="text/javascript">
    $(function(){
        $(":text").css("color","red");
    });
</script>

结果:

The most complete summary of jQuery selectors

49. :password : 匹配所有密码框

<form>
    <input type="text" />
    <input type="password" />
    <input type="submit" />
</form>
<script type="text/javascript">
    $(function(){
        $(":password").css("color","red");
    });
</script>

结果:

The most complete summary of jQuery selectors

50. :radio : 匹配所有单选按钮

<form>
    <input type="text" />
    <input type="password" />
    <input type="radio" />
    <input type="radio" />
</form>
<script type="text/javascript">
    $(function(){
        $(":radio").css("color","red");
    });
</script>

结果:

The most complete summary of jQuery selectors

51. :checkbox : 匹配所有复选框

<form>
    <input type="text" />
    <input type="password" />
    <input type="checkbox" />
    <input type="checkbox" />
</form>
<script type="text/javascript">
    $(function(){
        $(":checkbox").css("color","red");
    });
</script>

结果:

The most complete summary of jQuery selectors

52. :submit : 匹配所有提交按钮

<form> <input type="submit" /> </form> <script type="text/javascript">
    $(function(){
        $(":submit").css("color","red");
    }); </script>

结果:

53. :image : 匹配所有图像域

<form> <input type="image"/> </form> <script type="text/javascript">
    $(function(){
        $(":image").css("color","red");
    }); </script>

54. :reset : 匹配所重置按钮

<form> <input type="reset" /> </form> <script type="text/javascript">
    $(function(){
        $(":reset").css("color","red");
    }); </script>

结果:

55. :button : 匹配所有按钮

<form> <button>Button1</button> <button>Button2</button>
</form> <script type="text/javascript"> $(function(){
        $(":button").css("color","red");
    }); </script>

结果:

56. :file : 匹配所有文件域

<form> <input type="file" /> </form> <script type="text/javascript">
    $(function(){
        $(":file").css("color","red");
    }); </script>

57. :enabled : 匹配所有可用元素

<form> <input type="submit" disabled="disabled" /> <input type="reset" /> </form> <script type="text/javascript"> $(function(){
        $(":enabled").css("color","red");
    }); </script>

结果:

58. :disabled : 匹配所有不可用元素

<form> <input type="submit" disabled="disabled" /> <input type="reset" /> </form> <script type="text/javascript"> $(function(){
        $(":disabled").css("color","red");
    }); </script>

结果:

59. :checked : 匹配所有选中的被选中元素(复选框、单选框等,select中的option),对于select元素来说,获取选中推荐使用 :selected

<form>
    <input type="checkbox" name="news" checked="checked" />
    <input type="checkbox" name="news" />
    <input type="checkbox" name="news" checked="checked" />
</form>
<script type="text/javascript">
    $(function(){
        $(":checked").css("color","red");
    });
</script>

60. :selected : 匹配所有选中的option元素

<select> <option value="1">basketball</option> <option value="2" selected="selected">football</option>
  <option value="3">swim</option> </select> <script type="text/javascript">
    $(function(){
        $("select option:selected").css("color","red");
    }); </script>

结果:

basketballfootballswim

61. $.escapeSelector(selector) : 这个方法通常被用在类选择器或者ID选择器中包含一些CSS特殊字符的时候,这个方法基本上与CSS中CSS.escape()方法类似,唯一的区别是jquery中的这个方法支持所有浏览器。

该选择器在jQuery库3.0版本才开始有

<!--对含有#号的ID进行编码--> <script type="text/javascript"> $(function(){
        $.escapeSelector( "#target" ); // "\#target"  }); </script>

  


The above is the detailed content of The most complete summary of jQuery selectors. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn