jQuery选择器

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);
     });
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值