分类解析jQuery选择器


Posted in Javascript onNovember 23, 2016

基本选择器:

#id

根据Id匹配一个元素

.class

  根据给定的类名匹配一个元素

element

   根据元素名匹配一个元素

*

 匹配所有元素

selecttor1,selector2

   并集,返回两个选择器匹配到的元素

层次选择器:

ancestor descendant

 根据祖先匹配所有的后代元素

parent>child

  根据父元素匹配所有的子元素,直接后代

prev+next

匹配下一个兄弟元素 相当于next()方法

prev~siblings

   匹配后面的兄弟元素 相当于nextAll()方法     siblings()方法为匹配所有的兄弟元素

简单过滤选择器:

:first或first()

  匹配第一个元素

:last或last()

   匹配最后一个元素

:not(selector)

  匹配非selector能匹配到的元素

:even

  匹配索引值为偶数的元素,索引号从0开始

:odd

 匹配索引值为奇数的元素,索引号从0开始

:eq(index)

 

 匹配指定索引号的元素,索引号从0开始

:gt(index)

  

 匹配索引号大于给定索引值的元素,索引号从0开始

:lt(index)

 

匹配索引号小于给定索引值的元素,索引号从0开始

:header

匹配所有的标题元素  h1 h2 h3 h4 h5 h6

:animated

  匹配所有正在执行动画的元素

内容过滤选择器:

:contains(text)

匹配包含给定文本的元素

:empty

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

:has(selector)

  匹配后代中含有selector能匹配上元素的元素

:parent

匹配含有子元素或者文本的元素

可见性过滤选择器:

:hidden

匹配不可见元素,或者type="hidden"的元素 含有css样式:display:"none";的元素,无论CSS是内联,导入,链接式

:visible

获取所有的可见元素

属性过滤选择器:

[attribute]

匹配含有给定属性的元素

[attribute=value]

   匹配含有属性=value的元素

[attribute!=value]

  匹配含有属性但!=value的元素

[attribute^=value]

匹配属性值是以value开始的元素

[attribute$=value]

  匹配属性值是以value结束的元素

[attribute*=value]

  匹配属性值包含某些值的元素,部分前后,中间有也算

[selector][selector]

匹配属性选择器的交集

子元素过滤选择器:

:nth-child(eq|even|odd|index)

获取所有父元素特定位置的子元素

:first

  获取所有父元素下的第一个子元素

:last

  获取所有父元素下最后一个子元素

:only-child

获取所有父元素下唯一的一个元素

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

:enabled

    获取表单中所有可用的元素

:disabled

  获取表单中所有不可用的元素

:checked

 获取表单张所有被选中的元素

:selected

   获取表单中所有被选中的option的元素

表单选择器:

:input

获取所有的表单元素<input开头的,还有textarea select

:text

   获取所有的单行文本框

<input type="text" />

:password

获取所有的密码框元素      <input type="password" />

:radio

获取所有的单选按钮

 <input type="radio" />

:checkbox

获取所有的复选框

<input type="checkbox">

:submit

  获取所有的提交按钮

 <input type="submit" />

:image

获取所有的图像按钮

<input type="image" />

:reset

获取所有的重置按钮

  <input type="reset" />

:button

    获取所有的按钮

 <input type="button">

:file

  获取所有的文件上传框

<input type="file" />

1、基本选择器

(1)、#id  根据Id匹配一个元素

 $("#div1").css("background-color","red");
//匹配id为"div1"的元素

 <div id="div1">我是一个DIV</div> //会选中该div元素

(2)、element  根据给定的元素名匹配元素

$("p").css("background-color","red");

//匹配页面所有的p元素


<p>我是一个P</p>

(3)、class  根据class属性匹配元素

$(".important").removeClass();

//匹配所有class="important"元素


<p class="important">我是一个p元素</p>

(4)、*      匹配所有的元素

$("*").css("background-color","red");

(5)、selector1,selector2

选择器之间用逗号分隔

返回每一个选择器匹配到的元素

$(".div1,#span1").css("background-color","red");

2、层次选择器

 (1)、ancestor descendant   根据祖先元素匹配所有的后代元素,返回的是匹配到的后代元素,用空格分开。

$("#div1 span").css("color","red");


<div id="div1">



<span>我是span1</span>

 ***会被选中,是#div1的后代span



<div>




<span>我是span3</span>
 ***会被选中,也是#div1的后代span



</div>


</div>


<span>我是span2</span>


 ***不会被选中,不是#div1的后代

     (2)、parent > child

根据父元素匹配所有的子元素

返回所有的子元素

用大于号">"分隔

$("#div1 > span").css("color","red");

<div id="div1">



<span>我是span1</span>

 ***会被选中,是#div1的子元素span



<div>




<span>我是span3</span>
 ***不会被选中,是#div1的后代元素,但不是直接子元素



</div>


</div>


<span>我是span2</span>


 ***不会被选中,不是#div1的子元素

    (3)、prev + next

匹配紧接在prev元素后的相邻的下一个元素   用加号"+"分隔。

相当于.next()方法

$(".p1 + p").css("color","red");
//此行代码相当于$(".p1").next().css("color","red");


<div>



<p>我是第一个P</p>


***不会被选中,是class为p1的上一个了



<p class="p1">我是第二个P</p>
***prev本身并不会被选中



<p>我是第三个P</p>


***会被选中,是class为p1的下一个相邻元素



<p>我是第四个P</p>


***不会被选中,不是class为p1的下一个,是下二个了


</div>

      (4)、prev ~ sibings

匹配prev后面的的所有兄弟元素 用波浪线"~"分隔开

相当于 nextAll()方法

$(".p1 + p").css("color","red");
//此行代码相当于$(".p1").nextAll("p").css("color","red");


<div>



<p>我是第一个P</p>


***不会被选中,是class为p1前面的元素



<p class="p1">我是第二个P</p>
***prev本身并不会被选中



<p>我是第三个P</p>


***会被选中,是class为p1后面的P兄弟元素



<p>我是第四个P</p>


***会被选中,也是class为p1后面的P兄弟元素


</div>

 (5)、选中所有的兄弟元素 siblings() 方法

$(".p1").sibings("p").css("color","red");

<div>



<p>我是第一个P</p>


***会被选中,是class为p1的P兄弟元素



<p class="p1">我是第二个P</p>
***prev本身并不会被选中



<p>我是第三个P</p>


***会被选中,是class为p1的P兄弟元素



<p>我是第四个P</p>


***会被选中,也是class为p1的P兄弟元素


</div>

3、简单过滤选择器

(1)、first()或:first

选中符合条件的第一个元素

$("#div1 > p:first").css("color","red")//此行代码相当于
$("#div1 > p").first().css("color","red");


<div id="div1">



<p>我是第一个P</p>
 ***会被选中,是id为#div1下的第一个P元素



<p>我是第二个P</p>
 ***不会被选中,是第二个P元素了



<p>我是第三个P</p>
 ***不会被选中,是第三个P元素了


</div>

(2)、last()或:last

符合条件的最后一个元素

$("#div1 > p:last").css("color","red");
//此行代码相当于 $("#div1 > p").last().css("color","red");


<div id="div1">



<p>我是第一个P</p>
 ***不会被选中,是第一个



<p>我是第二个P</p>
 ***不会被选中,是第二个



<p>我是第三个P</p>
 ***会被选中,id为#div1下的最后一个P元素


</div>

 (3)、:not(selector)

符合条件但不能被selector选中的元素

$("#div1 > p:not('.p1')").css("color","red");

<div id="div1">



<p>我是第一个P</p>



***会被选中



<p class="p1">我是第二个P</p>
***不会被选中,因为符合了:not里的条件 class="p1"



<p>我是第三个P</p>



***会被选中


</div>

 (4)、:even

获取指定索引值为偶数的元素(0、2、4、6、8……),注意索引号是从0开始的

$("#div1 > p:even").css("color","red");

<div id="div1">



<p>我是第一个P</p>
***会被选中,索引号0



<p>我是第二个P</p>
***不会被选中,索引号1



<p>我是第三个P</p>
***会被选中,索引号2



<p>我是第四个P</p>
***不会被选中,索引号3



<p>我是第五个P</p>
***会被选中,索引号4


</div>

 (5)、odd

获取指定索引值为奇数的元素(1、3、5、7、9......),注意索引号是从1开始的

$("#div1 > p:odd").css("color","red");

<div id="div1">



<p>我是第一个P</p>
***不会被选中,索引号0



<p>我是第二个P</p>
***会被选中,索引号1



<p>我是第三个P</p>
***不会被选中,索引号2



<p>我是第四个P</p>
***会被选中,索引号3



<p>我是第五个P</p>
***不会被选中,索引号4


</div>

(6)、eq(index)

选取指定索引值的元素,索引值从0开始

$("#div1 > p:eq(1)").css("color","red");

<div id="div1">



<p>我是第一个P</p>
***不会被选中,索引号为0



<p>我是第二个P</p>
***不会被选中,索引号为1



<p>我是第三个P</p>
***不会被选中,索引号为2



<p>我是第四个P</p>
***不会被选中,索引号为3


</div>

 (7)、gt(index)

获取所有索引值大于index的元素,索引号从0开始

$("#div1 > p:gt(1)").css("color","red");

<div id="div1">



<p>我是第一个P</p>
***不会被选中,索引号为0



<p>我是第二个P</p>
***不会被选中,索引号为1



<p>我是第三个P</p>
***会被选中,索引号为2大于1了



<p>我是第四个P</p>
***会被选中,索引号为3大于1了


</div>

 (8)、lt(index)

获取所有索引值小于index的元素,索引号从0开始

$("#div1 > p:lt(1)").css("color","red");

<div id="div1">



<p>我是第一个P</p>
***会被选中,索引号为0,小于1



<p>我是第二个P</p>
***不会被选中,索引号为1,不小于1



<p>我是第三个P</p>
***不会被选中,索引号为2大于1了



<p>我是第四个P</p>
***不会被选中,索引号为3大于1了


</div>

(9)、:header

 索取所有标题类型元素h1、h2、h3、h4、h5、h6

$("#div1 > :header").css("color","red");
  <div id="div1">



<p>我是一个P</p>


***不会被选中,不是标题类型元素



<span>我是一个span</span> ***不会被选中,不是标题类型元素



<h1>我是一个h1</h1>

***会被选中,h1是标题类型元素



<h6>我是一个h6</h6>

***会被选中,h6是标题类型元素


</div>

(10)、animated

正在执行动画效果的元素

4、内容过滤选择器

 

(1)、:contains(text)    获取包含给定文本的元素

 $("p:contains('三')").css("background-color","red");


 <div>



<p>我是第一个P</p>
***不会被选中



<p>我是第二个P</p>
***不会被选中



<p>我是第三个P</p>
***会被选中,文本里包含了"三"


 </div>

(2)、:empty

获取不包含子元素或文本的空元素

$(:empty).text("我是空元素");


<div>




<div><span></span></div>
***div不会被选中,因为有<span></span>子元素。<span></span>会被选中,因为没有子元素也没有文本元素




<p></p>





***会被选中,没有子元素,也没有文本元素




<span>我是一个span</span>
***不会被选中,有文本元素



</div>

 (3)、:has(selector)

 选中含有selector所匹配元素的元素,(注意不限于直接子元素,只要是后代含有都算)

$("div:has('span')").css("background-color","red");


<div>




***此div会被选中,因为他的有孙子span




我是最外层div






<div><p>我是一个P</p></div>

***此div不会被选中,因为不含有后代span




<div><span>我是一个span</span></div>
***此div会被选中,含有后代span



</div>

(4)、:parent

含有子元素或者文本元素的元素

 $(":parent").text("不含子元素或文本元素");



<div>我是一个div</div>
***不会被选中,因为含有文本元素



<div><span>我是一个span</span></div>
***不会被选中,含有子元素。



<div></div>



***会被选中,不含子元素也不含有文本元素

5、可见性过滤选择器

(1)、:hidden

选中所有不可见元素

$("span:hidden").css("display","block");
 $("input:hidden").val("我是jQuery");

  <span style="display:none">我是一个span</span>
***会被第一条规则选中


  <input type="hidden" value="我是一个隐藏的input" /> ***会被第二条jQuery选中


  <span class="span1">我是span1</span>


 ***会被第一条jQuery选中

        (2)、:visible

选中所有可见元素

6、属性过滤选择器

(1)、[attribute]

获取包含给定属性的元素

$("div[class]").css("font-size","30px");
 

<div>



 <div class="div1">我是第一个div</div>
***会被选中,含有class属性



 <div>我是第二个div</div>



 ***不会被选中,没含有class属性。


 </div>

 

(2)、[attribute=value]

获取属性值等于value的元素

$("div[class=div1]").css("font-size","30px");



<div>




<div class="div1">我是div1</div>
***会被选中,class属性等于div1。




<div class="div2">我是div2</div>
***不会被选中,class属性不等于div1。



</div>

 

(3)、[attribute!=value]

获取属性值不等于value的元素

$("div[class!=div1]").css("color","red");



<div>我是一个没有class属性的div</div>




 ***会被选中,没有class属性自然class属性不等于div1



<div class="div2">我是一个class属性等于div2的div</div>
 ***会被选中,class属性不等于div1



<div class="div1">我是一个class属性等于div1的元素</div>
***不会被选中,class属性等于div1

(4)、[attribute^=value]

获取属性值以value开始的元素

$("div[class^=div]").css("color","red');



<div class="div1">我是div1</div>
***会被选中,class属性以div开始



<div class="div2">我是div2</div>
***会被选中,class属性以div开始



<div class="abc">我是div3</div>
 ***不会被选中,class属性不以div开始

(5)、[attribute$=value]

获取属性值以value结束的元素

$("div[class$=div]").css("color","red");



<div class="1div">我是第一个div</div>
***会被选中,class属性以div结束



<div class="2div">我是第二个div</div>
***会被选中,class属性以div结束



<div class="abc">我是第三个div</div>
 ***不会被选中,class属性不以div结束

(6)、[attribute*=value]

获取属性值包含value值元素

$("div[class*=div]").css("font-size","30px");



<div class="div1">我是div1</div>
***会被选中,属性值包含div



<div class="1div">我是1div</div>
***会被选中,属性值包含div



<div class="1div1">我是1div1</div> ***会被选中,属性值包含div



<div class="abc">我是abc</div>
 ***会被选中,属性值包含div

(7)、[selector][selector][selector]

获取属性交集元素

$("div:[class][title=title1]").css("background-color","red");



<div class="div1" title="title1">我是div1,title1</div>
***会被选中,有class属性且title属性等于title1



<div class="div1" title=title2>我是div1,title2</div>
 ***不会被选中,虽然有class属性,但是title属性不等于title2



<div class="div3">我是div3</div>




 ***不会被选中,没有title属性

7、子元素过滤选择器

 (1):nth-child(eq|even|odd|index)

获取每个父元素下的特定位置元素,索引号从1开始

$("div>p:nth-child(1)").css("background-color","red");//选中每一个父元素下的div下的第一个直接P元素
<div>

<p>我是第一个P</p> 
*** 会被选中,是div下的第一个子P元素

<p>我是第二个P</p> 
*** 不会被选中,是第二个了
</div>
<div>

<P>我是第三个P</P> 
*** 会被选中,是div下的第一个子P元素

<P>我是第四个P</P> 
*** 不会被选中,是第二个了
</div>

(2):first-child

选中每个父元素下的第一个

$("p:first-child").css("background-color","red");
//选中每一个父元素下的第一个P元素
<div>

<p>我是第一个P</p> 
*** 会被选中,是div下的第一个子P元素

<p>我是第二个P</p> 
*** 不会被选中,是第二个了
</div>
<ul>

<li>


<P>我是第三个P</P> 
*** 会被选中,是div下的第一个子P元素


<P>我是第四个P</P> 
*** 不会被选中,是第二个了

</li>
</ul>

(3)、:last-child

选中每一个父元素下的最后一个元素

$("p:last-child").css("background-color","red");
//选中每一个父元素下的第一个P元素
<div>

<p>我是第一个P</p> 
*** 不会被选中,不是某父元素的最后一个子P元素

<p>我是第二个P</p> 
*** 会被选中,是div元素下的最后一个子P元素
</div>
<ul>

<li>


<P>我是第三个P</P> 
*** 不会被选中,不是某父元素下的最后一个子P元素


<P>我是第四个P</P> 
*** 会被选中,是div元素下的最后一个P元素

</li>
</ul>

(4)、:only-child

获取每个父元素下唯一仅有的一个子元素

$("p:only-child").css("background-color","red");
<div>


<p>我是第一个P</p>
***不会被选中,不是某父元素下的唯一一个P元素


<p>我是第二个P</p>
***不会被选中,不是某父元素下的唯一一个P元素

</div>

<div>


<span>我是一个span</span>
***不会被选中,不是某父元素下的唯一一个P元素


<p>我是第三个P</p>


 ***不会被选中,不是某父元素下的唯一一个span元素

</div>

<div>


<p>我是一个P</p>

***会被选中,是div下的唯一一个P元素

</div>

8、表单对象属性过滤选择器

(1)、:enabled

获取表单中所有属性为可用的元素

$("input:enabled").val("jQuery表单对象属性过滤选择器");
<div>


<input type="text" value="我是一个可用的input" />

***会被选中,是一个可用的表单元素


<input type="text" value="我是一个不可用的input" disabled="disabled" />
***不会被选中,是不可用的表单元素

</div>

(2)、:disabled

获取表单中属性不可用的元素

$("input:enabled").val("jQuery表单对象属性过滤选择器");

<div>

 <input type="text" value="我是一个可用的input" />

***不会被选中,是一个可用的表单元素

 <input type="text" value="我是一个不可用的input" disabled="disabled" />
***会被选中,是不可用的表单元素 //注意,jQuery能够操作不可用
 的表单元素

</div>

(3)、:checked

获取表单中被选中的元素

从属性能够知道用户选中了哪个

$("input:checked").val("jQuery");


<div>



<input type="checkbox" checked="checked" value="1">选中



<input type="checkbox" value="0">未选中


</div>

(4)、:selected

获取表单中被选中的元素

此属性能够知道用户选择了哪个

alert($("input:selected").text(""));//获取所有被选中的option元素


<div>



<selected>




<option value="0" selected="selected">option1</option>
***会被选中




<option value="1">option2</option>




***不会被选中,因为本option不是选中的。



</selected>


</div>

9、表单选择器

(1)、:input

获取所有的input、textarea、select

$(":input").val("jQuery");

<div>



<textarea>我是一个兵</textarea>
***会被选中



<input text="button" value="" />
***会被选中



<p>我是一个P</p>




***不会被选中


</div>

(2)、:text

获取所有的单行文本框,也就是<input type="text" />元素

$(":text").val("jQuery");

<div>



<input type="text" value="我是一个input" />
***会被选中,是单行文本框



<input type="button" value="确定" />

  ***不会被选中,不是单行文本框



<textarea>我是一个textarea</textarea>

 ***不会被选中,不是单行文本框


</div>

(3)、:password

获取所有的密码框

也就是<input type="password" />元素

$(":password").hide(3000);


<div>



<input type="password" />

***会被选中,是密码框



<input type="text" value="我是一个文本框" />
***不会被选中,是文本框


</div>

(4)、:radio

获取所有的单选按钮

$(":radio").hide(3000);


<div>



<input type="radio" />我是一个radio
***单选按钮会被选中,但是后面的文字不会



<input type="text" />我是一个文本框
***不会被选中


</div>

(5)、:checkbox

获取所有的复选框

$(":checkbox").hide(3000);


<div>



<input type="checkbox" />我是一个checkbox
***复选框会被选中,文本不会



<input type="text" />我是一个文本框


 ***不会被选中,不是复选框


</div>

(6)、:submit

获取所有的提交按钮

$(":submit").hide(3000);


<div>



<input type="submit" value="提交">


***会被选中,是提交按钮



<input type="text" value="我是一个文本框">
 ***不会被选中,不是提交按钮


</div>

(7)、:image

获取所有的图像域

$(":image").attr("title","我是一个图片按钮");


<div>



<input type="image" src="http://www.baidu.com/img/baidu_sylogo1.gif" />
***会被选中



<input type="text" value="我是一个文本框" />


***不会被选中,不是图片按钮


</div>

(8)、:reset

获取所有重置按钮

$(":reset").hide(3000);


<div>



<input type="reset" value="重置">


***会被选中,是重置按钮



<input type="text" value="我是一个文本框">  ***不会被选中,不是重置按钮


</div>

(9)、:button

获取所有的按钮

$(":button").hide(3000);


<div>



<input type="button" value="确认" />


***会被选中,是按钮元素



<input type="text" value="我是一个文本框" />
 ***不会被选中,不是按钮元素


</div>

(10)、:file

获取所有的文件域

$(":file").hide(3000);


<div>



<input type="file" title="file" />



<input type="text" value="我是一个文本框" />


</div>

以上就是本文的全部内容,希望对大家有所帮助,谢谢对三水点靠木的支持!

Javascript 相关文章推荐
jQuery EasyUI API 中文文档 - Parser 解析器
Sep 29 Javascript
JS的replace方法介绍
Oct 20 Javascript
THREE.JS入门教程(5)你应当知道的十件事
Jan 24 Javascript
js 处理数组重复元素示例代码
Dec 27 Javascript
js实现索引图片切换效果
Nov 21 Javascript
Node.js返回JSONP详解
May 18 Javascript
深入理解Javascript中的自执行匿名函数
Jun 03 Javascript
JavaScript数据类型转换的注意事项
Jul 31 Javascript
jquery-mobile基础属性与用法详解
Nov 23 Javascript
vue实现在线翻译功能
Sep 27 Javascript
基于纯JS实现多张图片的懒加载Lazy过程解析
Oct 14 Javascript
Vue实现按钮级权限方案
Nov 21 Javascript
概述jQuery的元素筛选
Nov 23 #Javascript
JS实用的带停顿的逐行文本循环滚动效果实例
Nov 23 #Javascript
使用jquery实现的循环连续可停顿滚动实例
Nov 23 #Javascript
纯JS代码实现隔行变色鼠标移入高亮
Nov 23 #Javascript
jQuery实现ToolTip元素定位显示功能示例
Nov 23 #Javascript
详解jQuery的Cookie插件
Nov 23 #Javascript
JS 实现可停顿的垂直滚动实例代码
Nov 23 #Javascript
You might like
php中apc缓存使用示例
2013/12/25 PHP
php获取字符串中各个字符出现次数的方法
2015/02/23 PHP
laravel ORM关联关系中的 with和whereHas用法
2019/10/16 PHP
PHP实现二维数组(或多维数组)转换成一维数组的常见方法总结
2019/12/04 PHP
JS的反射问题
2010/04/07 Javascript
jquery.validate的使用说明介绍
2013/11/12 Javascript
JQuery实现table行折叠效果以JSON做数据源
2014/05/26 Javascript
基于jQuery实现的文字按钮表单特效整理
2014/12/07 Javascript
jQuery搜索同辈元素方法
2015/02/10 Javascript
详解JavaScript的Polymer框架中的通知交互
2015/07/29 Javascript
总结javascript中的六种迭代器
2016/08/16 Javascript
JavaScript实现事件的中断传播和行为阻止方法示例
2017/01/20 Javascript
解决bootstrap中使用modal加载kindeditor时弹出层文本框不能输入的问题
2017/06/05 Javascript
前端axios下载excel文件(二进制)的处理方法
2018/07/31 Javascript
Vue.js子组件向父组件通信的方法实例代码详解
2018/12/10 Javascript
详解vue-video-player使用心得(兼容m3u8)
2019/08/23 Javascript
vue 取出v-for循环中的index值实例
2019/11/09 Javascript
Python 的 Socket 编程
2015/03/24 Python
Python基础中所出现的异常报错总结
2016/11/19 Python
基于python的字节编译详解
2017/09/20 Python
Python实现的圆形绘制(画圆)示例
2018/01/31 Python
python实现栅栏加解密 支持密钥加密
2019/03/20 Python
Python基本数据结构与用法详解【列表、元组、集合、字典】
2019/03/23 Python
python利用itertools生成密码字典并多线程撞库破解rar密码
2019/08/12 Python
Python产生一个数值范围内的不重复的随机数的实现方法
2019/08/21 Python
TensorFlow命名空间和TensorBoard图节点实例
2020/01/23 Python
使用python客户端访问impala的操作方式
2020/03/28 Python
大数据分析用java还是Python
2020/07/06 Python
django rest framework 自定义返回方式
2020/07/12 Python
python 利用opencv实现图像网络传输
2020/11/12 Python
C#中的验证控件有几种
2014/03/08 面试题
中学生自我评价范文
2014/02/08 职场文书
助学贷款贫困证明
2014/09/23 职场文书
证券区域经理岗位职责
2015/04/10 职场文书
社区党支部承诺书
2015/04/29 职场文书
Django框架之路由用法
2022/06/10 Python