首页 > 代码库 > jQuery选择器

jQuery选择器

jQuery选择器

基本选择器

选择id

$("#name"):选择id为name的元素

选择类

$(".name"):选择所有类为name的元素

选择元素

$("p"):选择所有标签为p的元素

通配符选择器

$("*"):选择所有的元素

并列选择器(选择器组)

这里可以并列所有类型的选择器,包括基本选择器,层次选择器,过滤选择器,表单选择器,组合选择器等等所有的选择器,把每一个选择按逗号分隔开,相当于每一个选择器都起作用,返回所有选择器的结果 $("#name,.name,p,div"):选择id为name的元素,所有的class为name的元素,以及所有标签为p的元素 $("p.name,div"):选择所有class名为那么的p元素和所有的div元素 $("div~p,.name"):选择所有的class为name的元素以及div后面的兄弟元素中的所有p元素

层次选择器

这里的每个选择器都可以是所有类型的选择器

选择后代元素

$("div p"):选择div元素的后代中的所有p元素 $(".name p"):选择class为name的元素得后代中的所有p元素 $("#name p"):选择id为name的元素的后代中的所有p元素

选择子元素

$("div>p"):选择div元素的子元素中的所有p元素 $(".name>p"):选择class为name的元素的子元素中的所有p元素 $("#name>p"):选择id为name的元素的子元素中的所有p元素

选择下一个兄弟元素

$("div+p"):选择div元素后面的标签为p的第一个兄弟元素 $(".name+p"):选择class为name的元素后面的标签为p的第一个兄弟元素 $("#name+p"):选择class为name的元素后面的标签为p的第一个兄弟元素 可以使用下面的方法来替代 $("div").next(".name") 与$("div>.name")功能一样

选择后面所有的兄弟元素

$("div~p"):选择div元素后面的标签为p的所有兄弟元素 $("#name~.name"):选择id为name元素的后面的所有的class为那么的兄弟元素 可以使用下面的方法来代替 $("div").nextAll("p"):与$("div~p")的功能一样 另外还有一个siblings方法 $("div").siblings("p"):表示选择div的所有兄弟元素中标签为p的元素,不管前后

过滤选择器

基本过滤选择器

:first

选择第一个元素,前面可以加一个任何类型的选择器,表示选择符合这些要求的选择器中的第一项
$(div:first):选择第一个div元素
$(div p:first):选择div元素的所有标签为p的后代元素中的第一项

:last

表示选择最后一项元素,和:first作用类似,就是选择的条件不同

:even

表示选择奇数项的元素,和:first作用类似,就是选择的条件不同

:odd

表示选择偶数项的元素,和:first作用类似,就是选择的条件不同

:eq(一个数字)

表示选择索引值等一这个数字的项,索引值从0开始
$(div:eq(0)):表示选择第一个div元素
$(div:eq(3)):表示选择第四个div元素 其他的和:first作用类似,就是选择的条件不同

:lt(一个数字)

表示索引值小于这个数字的所有的元素,索引值从0开始,其他的和:first作用类似,就是选择的条件不同

:gt(一个数字)

表示索引值大于这个数字的所有的元素,索引值从0开始,其他的和:first作用类似,就是选择的条件不同

not(selector)

表示选择和selector中给定的条件不同的元素,selector可以使任意的选择器,其他的和:first作用类似,就是选择的条件不同
$("div:not(.name)"):选择div元素中类名不是name的元素

:header

表示选的所有的标题元素h h1 h2等等
$(div :header):选择div的后代元素中所有的标题元素,注意这里有一个空格,如果没有空格就变成了选择所有的div中的标题元素,这样是没有意义的,所以:header一般都是作为一个独立的成分来使用的,不用依托于其他元素
$(":header"):选择页面中所有的标题元素

:animated

表示选择正在播放动画的元素 $(":animated"):页面中所有正在播放动画的元素
$("div:animate"):没有空格,表示选择所有正在播放动画的div元素
$("div :animated"):有空格,表示选择div后代元素中所有的正在播放动画的元素

基本过滤选择器总结

:first,:last,:eq(),:not(),:lt(),:gt(),:even(),:odd()
这些元素必须依托于其他元素或者选择器起作用,所以和前面的内容之间不能有空格
:header
它不依托与前面的元素或者选择器,所以可以单独使用,如果和其他选择器一起使用则是把它当做一个单独的选择器来用。
:animated
它同时具有上面两类元素的特点,既可以依托于其他的元素或者选择器,也可以自己单独使用

内容过滤选择器

:contains(text)

选取后代元素中含有给定的文本内容的元素,和元素或者各种选择器联合起来起作用
$(div:contains("我")):选取后代元素中含有“我”的div元素
$(div p:contains("w")):选取为div的后代元素的p元素的后代中,含有“我”的所有的p元素

:has(selector)

选取后代元素中含有符合selector要求的元素,和其他元素或者选择器一起使用
$("div:has(.name)"):选择后代元素中含有类名的name的元素的div元素

:empty

选择不含有子元素(包括文本元素)的元素

:parent

选择含有子元素(包括文本元素)的元素

属性过滤选择器

[attr]

选择含有某个属性的元素
$("div[title]“):选择含有title属性的div元素

[attr=value]

选择属性值等于某个值得元素
$("div[title=test]”):选择title属性的值等于test的div元素

[attr!=value]

选择属性不值等于某个值得元素
$("div[title!=test]”):选择title属性的值不等于test的div元素

[attr^=value]

选择属性值以某个字符或者字符串开头的元素
$("div[title^=te]”):选择title属性的值以te开头的div元素

[attr$=value]

选择属性值以某个字符或者字符串结尾的元素
$("div[title$=te]”):选择title属性的值以te结尾的div元素

[attr*=value]

选择属性值中包含某个字符或者字符串的元素 $("div[title*=te]”):选择title属性的值中含有te的div元素

[selector1][selector1]...[selectorN]

可以多个属性选择器混合使用 $("div[title=te][width=100px]”):选择title属性值为te,width属性为100px的div元素

子元素过滤选择器

:nth-child()

括号中可以放数字,表达式,odd,even
表示选择某个元素的父元素中索引值为几的子元素,索引值从1开始 $("ul li:nth-child(2)"):找到ul的所有后代li元素,找到每一个li元素的父元素中第二个子元素
$("ul li:nth-child(even)"):找到ul的所有后代li元素,找到每一个li元素的父元素中索引值为奇数的子元素 
$("ul li:nth-child(odd)"):找到ul的所有后代li元素,找到每一个li元素的父元素中索引值为偶数的子元素
$("ul li:nth-child(3n+1)"):找到ul的所有后代li元素,找到每一个li元素的父元素中索引值为3n+1的子元素

:first-child

找到父元素中的第一个子元素 $("ul li:first-child"):找到ul的所有后代li元素,找到每一个li元素的父元素中的第一个子元素

:last-child

找到父元素中的最后一个子元素 $("ul li:last-child"):找到ul的所有后代li元素,找到每一个li元素的父元素中的最后一个子元素

:only-child

判断某个元素是否是它父元素中的唯一元素,如果是则返回这个元素,如果不是则不返回任何东西 找到父元素中的第一个子元素 $("ul li:only-child"):找到ul的所有后代li元素,判断每一个li是否是它的父元素中唯一的元素,如果是则匹配这个li,如果不是,则什么都不匹配。

可见性过滤选择器

:hidden

选取所有不可见的元素,即可以作为一个独立的选择器使用,也可以和其他选择器一起使用 $(":hidden"):选取页面中所有不可见的元素
$("div:hidden"):选择所有不可见的div元素 $("div :hidden"):选择div后代元素中所有的不可见得元素

:visible

选取所有可见的元素,即可以作为一个独立的选择器使用,也可以和其他选择器一起使用 $(":visible"):选取页面中所有可见的元素
$("div:visible"):选择所有可见的div元素 $("div :visible"):选择div后代元素中所有的可见得元素

表单过滤选择器

这类选择器主要针对表单元素

:enabled

选取所有可用的元素。即可以单独作用,也可以和其他选择器一起作用 $("form :enabled"):选取form元素的后代元素中所有可用的元素,有空格 $("input:enabled"):选取所有可用的input元素,没有空格

:disabled

选取所有不可用的元素。即可以单独作用,也可以和其他选择器一起作用 $("form :disabled"):选取form元素的后代元素中所有可用的元素 $("input:enabled"):选取所有不可用的input元素,没有空格

:checked

选择被选中的元素,主要针对单选复选框 $("input:checked"):选取input中被选中的元素

:selected

选择被选中的元素,主要针对下拉列表,select,option $("option:selected"):选取option中被选中的元素 $("select :selected"):选取select后代元素中中被选中的元素

表单选择器

这些元素都是独立使用的元素

:input

选择所有的input,textarea,select,button元素

:text

选取所有type为text的input元素

:password

选取所有type为password的input元素

:radio

选取所有type为radio的input元素

:checkbox

选取所有type为checkbox的input元素

:submit

选取所有type为submit的input元素

:image

选取所有type为image的input元素

:button

选取所有的button元素

:file

选取所有的上传域,即type为file的input元素

组合选择器

上诉所有的选择器,可以按任意的方式组合起来,形成一个强大的组合选择器。同时,一个组合选择器可以放在选择器组中,当成选择器组中的一项。 $(div p:nth-child(1)):首先找到div所有的后代p元素,然后找到所有p元素的父元素中的第一个子元素。

jQuery选择器