jquery获取css中的选择器(实例讲解)


Posted in Javascript onDecember 02, 2013

开始写之前先复习一下元素和节点的区别:

元素是W3C文档对象模型(DOM)当中使用最广泛的节点之一。

元素拥有关联的“属性”。

XmlElement类拥有许多方法来访问它的“属性”(GetAttribute, SetAttribute, RemoveAttribute, GetAttributeNode, 等等)。

你也可以使用“Attributes”属性来返回一个支持“名字”或者“序号”访问的“XML属性集”。

那么,从XmlElement类的解释来看,我们很容易就知道XmlNode和XmlElement类的区别了:

XmlElement类是只拥有“属性”的一个节点,而XmlNode则是不仅拥有“属性”,还拥有“子节点”的一个节点。

所以,我们在使用它们的时候,如果你需要获取或者设置节点中的innerText或者innerXml,那么你就需要用XmlNode;而如果你需要获取或者设置节点本身的属性(参数)的时候,你就需要用XmlElement,当然,你也可以用(XmlElement)对XmlNode进行转换得到。

下面开始进入正题

在javascript中,除了对id的选择器比较好取一些,其他的都不是很好取,jquery在这一块要比它优秀多了,提供了很多的获取方法主要包括

1、基础选择器(主要包括标签选择器,id选择器,类选择器,通用选择器,组选择器)

$("#divId") 获取ID为divId的元素
 $("a") 获取所有<a>元素

$(".bgRed") 获取所用CSS类为bgRed的元素

$("*")获取页面所有元素

$("#divId, a, .bgRed")获取三个满足条件的选择器

2、层级选择器(主要包括子元素选择器、后代元素选择器、紧邻同辈元素选择器、相邻同辈元素选择器)

2.1   子元素选择器>  ===============选择儿子元素

<ul class="topnav"> 
    <li>Item 1</li> 
    <li>Item 2  
        <ul><li>Nested item 1</li><li>Nested item 2</li><li>Nested item 3</li></ul> 
       </li> 
    <li>Item 3</li> 
</ul> <script>    $("ul.topnav > li").css("border", "3px double red");</script>

这是官方的代码,可以参考以下其用法

2.2   后代选择器 直接用空格表示 不仅包括儿子还包括孙子........===============选择后代元素

 <form> 
    <div>Form is surrounded by the green outline</div> 
    <label>Child:</label> 
    <input name="name" />     <fieldset> 
      <label>Grandchild:</label> 
      <input name="newsletter" /> 
    </fieldset> 
  </form> 
  Sibling to form: <input name="none" /> 
<script>    $("form input").css("border", "2px dotted blue");</script>

2.3    紧邻同辈元素选择器 所有符合条件的都可以会被选择 主要是选择一个元素之后的平行元素 ===============选择指定元素的下一个平辈元素
   <form>     <label>Name:</label> 
    <input name="name" /> 
    <fieldset> 
      <label>Newsletter:</label> 
      <input name="newsletter" /> 
    </fieldset> 
  </form> 
  <input name="none" /> 
<script>$("label + input").css("color", "blue").val("Labeled!")</script>

2.4  相邻同辈元素选择器 ===============选择指定元素的所有指定的平辈元素,可以隔几个不是指定的元素
  <div>div (doesn't match since before #prev)</div> 
  <span id="prev">span#prev</span> 
  <div>div sibling</div>   <div>div sibling <div id="small">div niece</div></div> 
  <span>span sibling (not div)</span> 
  <div>div sibling</div> 
<script>$("#prev ~ div").css("border", "3px groove blue");</script>

3、表单选择器主要选择表单、用的时间要注意$(":input")注意引号里面的冒号也可以选择类型如$(":button")不过多介绍

4、基本过滤器主要包括

名称 说明 举例
:first 匹配找到的第一个元素 查找表格的第一行:$("tr:first")
:last 匹配找到的最后一个元素 查找表格的最后一行:$("tr:last")
:not(selector) 去除所有与给定选择器匹配的元素 查找所有未选中的 input 元素: $("input:not(:checked)")
:even 匹配所有索引值为偶数的元素,从 0 开始计数 查找表格的1、3、5...行:$("tr:even")
:odd 匹配所有索引值为奇数的元素,从 0 开始计数 查找表格的2、4、6行:$("tr:odd")
:eq(index) 匹配一个给定索引值的元素 注:index从 0 开始计数 查找第二行:$("tr:eq(1)")
:gt(index) 匹配所有大于给定索引值的元素 注:index从 0 开始计数 查找第二第三行,即索引值是1和2,也就是比0大:$("tr:gt(0)")
:lt(index) 选择结果集中索引小于 N 的 elements 注:index从 0 开始计数 查找第一第二行,即索引值是0和1,也就是比2小:$("tr:lt(2)")
:header 选择所有h1,h2,p一类的header标签. 给页面内所有标题加上背景色: $(":header").css("background", "#EEE");
:animated 匹配所有正在执行动画效果的元素 只有对不在执行动画效果的元素执行一个动画特效: $("#run").click(function(){   $("div:not(:animated)").animate({ left: "+=20" }, 1000); });

5、内容过滤器(主节点的子节点为文本节点)

名称 说明 举例
:contains(text) 匹配包含给定文本的元素 查找所有包含 "John" 的 div 元素:$("div:contains('John')")
:empty 匹配所有不包含子元素或者文本的空元素 查找所有不包含子元素或者文本的空元素:$("td:empty")
:has(selector) 匹配含有选择器所匹配的元素的元素 给所有包含 p 元素的 div 元素添加一个 text 类: $("div:has(p)").addClass("test");
:parent 匹配含有子元素或者文本的元素 查找所有含有子元素或者文本的 td 元素:$("td:parent")

6、可见性过滤器  Visibility Filters

:hidden

:visible

7、属性过滤器 Attribute Filters

名称 说明 举例
[attribute] 匹配包含给定属性的元素 查找所有含有 id 属性的 div 元素: $("div[id]")
[attribute=value] 匹配给定的属性是某个特定值的元素 查找所有 name 属性是 newsletter 的 input 元素: $("input[name='newsletter']").attr("checked", true);
[attribute!=value] 匹配给定的属性是不包含某个特定值的元素 查找所有 name 属性不是 newsletter 的 input 元素: $("input[name!='newsletter']").attr("checked", true);
[attribute^=value] 匹配给定的属性是以某些值开始的元素 $("input[name^='news']")
[attribute$=value] 匹配给定的属性是以某些值结尾的元素 查找所有 name 以 'letter' 结尾的 input 元素: $("input[name$='letter']")
[attribute*=value] 匹配给定的属性是以包含某些值的元素 查找所有 name 包含 'man' 的 input 元素: $("input[name*='man']")
[attributeFilter1][attributeFilter2][attributeFilterN] 复合属性选择器,需要同时满足多个条件时使用。 找到所有含有 id 属性,并且它的 name 属性是以 man 结尾的: $("input[id][name$='man']")

8.子元素过滤器 Child Filters

名称 说明 举例
:nth-child(index/even/odd/equation) 匹配其父元素下的第N个子或奇偶元素 ':eq(index)' 只匹配一个元素,而这个将为每一个父元素匹配子元素。:nth-child从1开始的,而:eq()是从0算起的! 可以使用: nth-child(even) :nth-child(odd) :nth-child(3n) :nth-child(2) :nth-child(3n+1) :nth-child(3n+2) 在每个 ul 查找第 2 个li: $("ul li:nth-child(2)")
:first-child 匹配第一个子元素 ':first' 只匹配一个元素,而此选择符将为每个父元素匹配一个子元素 在每个 ul 中查找第一个 li: $("ul li:first-child")
:last-child 匹配最后一个子元素 ':last'只匹配一个元素,而此选择符将为每个父元素匹配一个子元素 在每个 ul 中查找最后一个 li: $("ul li:last-child")
:only-child 如果某个元素是父元素中唯一的子元素,那将会被匹配 如果父元素中含有其他元素,那将不会被匹配。 在 ul 中查找是唯一子元素的 li: $("ul li:only-child")
Javascript 相关文章推荐
初识javascript 文档碎片
Jul 13 Javascript
Javascript学习笔记 delete运算符
Sep 13 Javascript
bootstrap与Jquery UI 按钮样式冲突的解决办法
Sep 23 Javascript
超全面的JavaScript开发规范(推荐)
Jan 21 Javascript
详解Vue中过度动画效果应用
May 25 Javascript
jQuery扇形定时器插件pietimer使用方法详解
Jul 18 jQuery
JavaScript实现短信倒计时60s
Oct 09 Javascript
傻瓜式解读koa中间件处理模块koa-compose的使用
Oct 30 Javascript
JS实现带阴历的日历功能详解
Jan 24 Javascript
如何使用Jquery动态生成二级选项列表
Feb 06 jQuery
JS数组扁平化、去重、排序操作实例详解
Feb 24 Javascript
详解element上传组件before-remove钩子问题解决
Apr 08 Javascript
jquery中的查找parents与closest方法之间的区别
Dec 02 #Javascript
jquery中的过滤操作详细解析
Dec 02 #Javascript
原生JS操作网页给p元素添加onclick事件及表格隔行变色
Dec 01 #Javascript
用JS实现3D球状标签云示例代码
Dec 01 #Javascript
js arguments,jcallee caller用法总结
Nov 30 #Javascript
js中arguments的用法(实例讲解)
Nov 30 #Javascript
JavaScript中的undefined学习总结
Nov 30 #Javascript
You might like
德生9700DX电路分析
2021/03/02 无线电
php in_array 函数使用说明与in_array需要注意的地方说明
2010/04/13 PHP
Thinkphp调用Image类生成缩略图的方法
2015/03/07 PHP
PHP使用PHPExcel实现批量上传到数据库的方法
2017/06/08 PHP
PHP实现QQ登录的开原理和实现过程
2018/02/04 PHP
JavaScript修改css样式style
2008/04/15 Javascript
JQuery 遮罩层实现(mask)实现代码
2010/01/09 Javascript
jquery复选框checkbox实现删除前判断
2014/04/20 Javascript
js和jquery如何获取图片真实的宽度和高度
2014/09/28 Javascript
javacript使用break内层跳出外层循环分析
2015/01/12 Javascript
javascript中sort()的用法实例分析
2015/01/30 Javascript
jquery实现图片放大点击切换
2017/06/06 jQuery
Angular2监听页面大小变化的解决方法
2017/10/09 Javascript
vue.js实例对象+组件树的详细介绍
2017/10/20 Javascript
Angular设置别名alias的方法
2018/11/08 Javascript
js中值引用和地址引用实例分析
2019/06/21 Javascript
改进 JavaScript 和 Rust 的互操作性并深入认识 wasm-bindgen 组件
2019/07/13 Javascript
Vue的click事件防抖和节流处理详解
2019/11/13 Javascript
javascript代码实现简易计算器
2021/01/25 Javascript
[01:54]TI4西雅图DOTA2选手欢迎晚宴 现场报道
2014/07/08 DOTA
[54:56]DOTA2上海特级锦标赛主赛事日 - 5 总决赛Liquid VS Secret第三局
2016/03/06 DOTA
[05:06]DOTA2-DPC中国联赛 正赛 VG vs Magma选手采访
2021/03/11 DOTA
windows下wxPython开发环境安装与配置方法
2014/06/28 Python
Android分包MultiDex策略详解
2017/10/30 Python
Django models.py应用实现过程详解
2019/07/29 Python
DJANGO-URL反向解析REVERSE实例讲解
2019/10/25 Python
win10下opencv-python特定版本手动安装与pip自动安装教程
2020/03/05 Python
python如何实现图片压缩
2020/09/11 Python
pytorch下的unsqueeze和squeeze的用法说明
2021/02/06 Python
建筑设计所实习生自我鉴定
2013/09/25 职场文书
师范应届毕业生自荐信
2013/11/18 职场文书
2014年党员公开承诺书范文
2014/03/28 职场文书
《学会合作》教学反思
2014/04/12 职场文书
优秀班主任推荐材料
2014/12/17 职场文书
入党群众意见范文
2015/06/02 职场文书
nginx共享内存的机制详解
2022/03/21 Servers