您的位置:首页 > Web前端 > JQuery

jQuery选择器

2015-10-24 23:57 627 查看
jQuery选择器包括基本选择器、层次选择器、基本过滤选择器、可见性选择器、属性过滤选择器、子元素选择器、表单对象属性选择器。

这些选择器可以结合使用,这些选择器组合实现不了的功能还能通过函数实现。

基本选择器:

•基本选择器是 jQuery中最常用的选择器,也是最简单的选择器,
它通过元素id, class
和标签名来查找 DOM 元素(在网页中id
只能使用一次, class允许重复使用).



示例

•改变 id 为one的元素的背景色为
# bbffaa
$("#one").css("background", "#ffbbaa");
•改变 class
为 mini的所有元素的背景色为#
bbffaa
$(".mini").css("background", "#ffbbaa");
•改变元素名为 <div>
的所有元素的背景色为 # bbffaa
$("div").css("background", "#ffbbaa");
•改变所有元素的背景色为 #
bbffaa
$("*").css("background", "#ffbbaa");
•改变所有的<span>元素和id
为 two的元素的背景色为
# bbffaa
$("span,#two").css("background", "#ffbbaa");
层次选择器:

•如果想通过DOM
元素之间的层次关系来获取特定元素,
例如后代元素, 子元素,相邻元素,
兄弟元素等,则需要使用层次选择器.



•注意: (“prev ~ div”)选择器只能选择 “#
prev ”元素后面的同辈元素;而
jQuery中的方法siblings()与前后位置无关,只要是同辈节点就可以选取
示例:

•改变 <body>
内所有<div>的背景色为
# bbffaa
$("body div").css("background", "#ffbbaa");
•改变 <body>
内子<div>的背景色为
# bbffaa
$("body > div").css("background", "#ffbbaa");
•改变 id 为one的下一个<div>的背景色为
# bbffaa
$("#one + div").css("background", "#ffbbaa");
•改变 id 为two的元素后面的所有兄弟<div>的元素的背景色为#
bbffaa
$("#two ~ div").css("background", "#ffbbaa");
•改变 id 为two的元素所有
<div> 兄弟元素的背景色为
# bbffaa
$("#two").siblings("div").css("background", "#ffbbaa");
•选择 id 为 one 的下一个 span 元素
//以下选择器选择的是近邻 #one 的 span 元素, 若该span

//和 #one 不相邻, 选择器无效.

//$("#one + span").css("background", "#ffbbaa");

$("#one").nextAll("span:first").css("background", "#ffbbaa");
•选择 id 为 two 的元素前边的所有的 div 兄弟元素
$("#two").prevAll("div").css("background", "#ffbbaa");
过滤选择器:

•过滤选择器主要是通过特定的过滤规则来筛选出所需的DOM
元素,该选择器都以 “:”开头
•按照不同的过滤规则,
过滤选择器可以分为基本过滤,
内容过滤, 可见性过滤,属性过滤,
子元素过滤和表单对象属性过滤选择器.



示例:

•改变第一个div
元素的背景色为 # bbffaa
$("div:first").css("background", "#ffbbaa");
•改变最后一个div
元素的背景色为 # bbffaa
$("div:last").css("background", "#ffbbaa");
•改变class不为one的所有
div元素的背景色为#
bbffaa
$("div:not(.one)").css("background", "#ffbbaa");
•改变索引值为偶数的div
元素的背景色为 # bbffaa
$("div:even").css("background", "#ffbbaa");
•改变索引值为奇数的div
元素的背景色为 # bbffaa
$("div:odd").css("background", "#ffbbaa");
•改变索引值为大于3
的 div 元素的背景色为#bbffaa
$("div:gt(3)").css("background", "#ffbbaa");
•改变索引值为等于3
的 div 元素的背景色为#bbffaa
$("div:eq(3)").css("background", "#ffbbaa");
•改变索引值为小于3
的 div 元素的背景色为#bbffaa
$("div:lt(3)").css("background", "#ffbbaa");
•改变所有的标题元素的背景色为#
bbffaa
$(":header").css("background", "#ffbbaa");
•改变当前正在执行动画的所有元素的背景色为#bbffaa
$(":animated").css("background", "#ffbbaa");
内容过滤选择器:

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



•改变含有文本 ‘di’的
div 元素的背景色为#
bbffaa
$("div:contains('di')").css("background", "#ffbbaa");
•改变不包含子元素(或者文本元素)的
div 空元素的背景色为#bbffaa
$("div:empty").css("background", "#ffbbaa");
•改变含有 class
为 mini元素的div
元素的背景色为#bbffaa
$("div:has(.mini)").css("background", "#ffbbaa");
•改变含有子元素(或者文本元素)的div元素的背景色为#bbffaa
$("div:parent").css("background", "#ffbbaa");

//$("div:not(:empty)").css("background", "#ffbbaa");
可见性选择器:

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



•可见选择器 :hidden
不仅包含样式属性 display
为 none 的元素,也包含文本隐藏域
(<input type=“hidden”>)和visible:hidden之类的元素

示例:
•改变所有可见的div元素的背景色为
# bbffaa
$("div:visible").css("background", "#ffbbaa");
•选取所有不可见的元素,
利用 jQuery中的
show()方法将它们显示出来,
并设置其背景色为 #
bbffaa
$("div:hidden").show(2000).css("background",

"#ffbbaa");
•选取所有的文本隐藏域,
并打印它们的值

alert($("input:hidden").val());
属性过滤选择器:

•属性过滤选择器的过滤规则是通过元素的属性来获取相应的元素



示例:

•含有属性title
的div元素.
$("div[title]").css("background", "#ffbbaa");
•属性title值等于"test"的div元素.
$("div[title='test']").css("background", "#ffbbaa");
•属性title值不等于"test"的div元素(没有属性title的也将被选中).
//选取的元素中包含没有 title 的 div 元素.

$("div[title!='test']").css("background", "#ffbbaa");
•属性title值 以"te"开始的div元素.
$("div[title^='te']").css("background", "#ffbbaa");
•属性title值 以"est"结束的div元素.
$("div[title$='est']").css("background", "#ffbbaa");
•属性title值 含有"es"的div元素.
$("div[title*='es']").css("background", "#ffbbaa");
•选取有属性id的div元素,然后在结果中选取属性title值含有“es”的
div元素.
$("div[id][title*='es']").css("background", "#ffbbaa");
•选取 含有 title 属性值, 且title 属性值不等于 test 的 div 元素.
$("div[title][title!='test']").css("background", "#ffbbaa");

子元素选择器:



•nth-child()选择器详解如下:
–(1):nth-child(even/odd): 能选取每个父元素下的索引值为偶(奇)数的元素
–(2):nth-child(2):能选取每个父元素下的索引值为
2 的元素
–(3):nth-child(3n):能选取每个父元素下的索引值是
3 的倍数 的元素
–(3):nth-child(3n +
1): 能选取每个父元素下的索引值是
3n + 1的元素

示例:

•每个class为one的div父元素下的第2个子元素.
//选取子元素, 需要在选择器前添加一个空格.

$("div.one :nth-child(2)").css("background", "#ffbbaa");
•每个class为one的div父元素下的第一个子元素
$("div.one :first-child").css("background", "#ffbbaa");
•每个class为one的div父元素下的最后一个子元素
$("div.one :last-child").css("background", "#ffbbaa");
•如果class为one的div父元素下的仅仅只有一个子元素,那么选中这个子元素
$("div.one :only-child").css("background", "#ffbbaa");
表单选择器:



表单对象属性过滤器:

•此选择器主要对所选择的表单元素进行过滤




示例:
•对表单内 可用input 赋值操作
$(":text:enabled").val("尚硅谷");

•对表单内 不可用input 赋值操作
$(":text:disabled").val("www.atguigu.com");

•获取多选框选中的个数
var num =

$(":checkbox[name='newsletter']:checked").length;

•获取多选框选中的内容
$(":checkbox[name='newsletter']:checked").each(function(){

alert(this.value);

});

•获取下拉框选中的内容.
//实际被选择的不是 select, 而是 select 的 option 子节点

//所以要加一个 空格.

//var len = $("select :selected").length

//alert(len);



//因为 $("select :selected") 选择的是一个数组

//当该数组中有多个元素时, 通过 .val() 方法就只能获取第一个被选择的值了.

//alert($("select :selected").val());



//jQuery 对象遍历的方式使 each, 在 each 内部的 this 是正在

//得到的 DOM 对象, 而不是一个 jQuery 对象

$("select :selected").each(function(){

alert(this.value);

});
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: