css提取页面元素唯一性_jquery获取css中的选择器(实例讲解)

本文介绍了jQuery中各种CSS选择器的使用,包括基础选择器、层级选择器、表单选择器、过滤器等,帮助开发者更高效地选取和操作页面元素。
摘要由CSDN通过智能技术生成

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

元素是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") 获取所有元素

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

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

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

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

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

  • Item 1
  • Item 2
    • Nested item 1
    • Nested item 2
    • Nested item 3
  • Item 3

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

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

Form is surrounded by the green outline

Child:

Grandchild:

Sibling to form:

2.3    紧邻同辈元素选择器 所有符合条件的都可以会被选择 主要是选择一个元素之后的平行元素 ===============选择指定元素的下一个平辈元素

Name:

Newsletter:

2.4  相邻同辈元素选择器 ===============选择指定元素的所有指定的平辈元素,可以隔几个不是指定的元素

div (doesn't match since before #prev)

span#prev

div sibling
div sibling
div niece

span sibling (not div)

div sibling

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")

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值