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 相关文章推荐
ExtJS Window 最小化的一种方法
Nov 18 Javascript
jQuery find和children方法使用
Jan 31 Javascript
浅析jquery与checkbox的checked属性的问题
Apr 27 Javascript
js实现的xml对象转json功能示例
Dec 24 Javascript
js实现楼层导航功能
Feb 23 Javascript
基于JavaScript实现带数据验证和复选框的表单提交
Aug 23 Javascript
微信小程序实现手指触摸画板
Jul 09 Javascript
jQuery访问json文件中数据的方法示例
Jan 28 jQuery
Node.js学习之内置模块fs用法示例
Jan 22 Javascript
vue中的过滤器及其时间格式化问题
Apr 09 Javascript
JS实现手写 forEach算法示例
Apr 29 Javascript
Postman如何实现参数化执行及断言处理
Jul 28 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
综合图片计数器
2006/10/09 PHP
PHP下几种删除目录的方法总结
2007/08/19 PHP
数据库查询记录php 多行多列显示
2009/08/15 PHP
php设计模式 FlyWeight (享元模式)
2011/06/26 PHP
Yii框架关联查询with用法分析
2014/12/02 PHP
PHP中创建和验证哈希的简单方法实探
2015/07/06 PHP
PHP实现笛卡尔积算法的实例讲解
2019/12/22 PHP
phpstudy隐藏index.php的方法
2020/09/21 PHP
autoIMG 基于jquery的图片自适应插件代码
2011/03/12 Javascript
潜说js对象和数组
2011/05/25 Javascript
关于JavaScript中原型继承中的一点思考
2012/07/25 Javascript
jquery右下角弹出提示框示例代码
2013/10/08 Javascript
JS中把字符转成ASCII值的函数示例代码
2013/11/21 Javascript
javascript eval(func())使用示例
2013/12/05 Javascript
JS实现简易图片轮播效果的方法
2015/03/25 Javascript
jquery动感漂浮导航菜单代码分享
2020/04/15 Javascript
js中json处理总结之JSON.parse
2016/10/14 Javascript
vue-cli3.0如何使用CDN区分开发、生产、预发布环境
2018/11/22 Javascript
35个最好用的Vue开源库(史上最全)
2019/01/03 Javascript
Python描述器descriptor详解
2015/02/03 Python
python变量不能以数字打头详解
2016/07/06 Python
win7上python2.7连接mysql数据库的方法
2017/01/14 Python
基于Html5 canvas实现裁剪图片和马赛克功能及又拍云上传图片 功能
2019/07/09 HTML / CSS
世界上最大的高分辨率在线图片库:Alamy
2018/07/07 全球购物
留学生如何写好自荐信
2013/12/27 职场文书
年度考核自我鉴定
2014/02/02 职场文书
革命先烈的英雄事迹材料
2014/02/15 职场文书
战略合作协议书范本
2014/04/18 职场文书
公务员上班玩游戏检讨书
2014/09/17 职场文书
2014年安全管理工作总结
2014/12/01 职场文书
2014业务员年终工作总结
2014/12/09 职场文书
css3实现背景图片半透明内容不透明的方法示例
2021/04/13 HTML / CSS
详解Redis在SpringBoot工程中的综合应用
2021/10/16 Redis
使用Spring处理x-www-form-urlencoded方式
2021/11/02 Java/Android
html5调用摄像头截图功能
2022/01/18 Javascript
ubuntu开机后ROS程序自启动问题
2022/12/24 Servers