`
yeshaoting
  • 浏览: 686161 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

[随记]锋利的jQuery 第二章 jQuery选择器

 
阅读更多

 

2.1 jQuery选择器是什么
常用的CSS选择器



 
把CSS应用到网页中有3种方式,即行间样式表、内部样式表和外部样式表。内部样式表的缺点是不能被多个页面重复使用的。

 

 

2.2 jQuery选择器的优势
$()函数在很多JavaScript类库中都被作为一个选择器函数来使用,在jQuery中也不例外。其中,$("#ID")用来代替document.getElementById()函数,即通过ID获取元素;$("tagName")用来代替document.getElementsByTagName()函数,即通过标签名获取HTML元素。

 

为了能有更快的选择器解析速度,从1.1.3.1版以后,jQuery废弃了不常使用的XPath选择器,但在引用相关插件后,依然可以支持XPath选择器。(XPath知识略过)

即使用jQuery获取网页中不存在的元素也不会报错。(避免浏览器报错)
$("#tt")获取的永远是对象,即使网页上没有此元素。因此当要用jQuery检查某个元素在网页上是否存在时,不能使用以下代码:
if($("tt"))
{
 //do something
}


而应该根据获取到元素的长度来判断,代码如下:
if($("tt").length > 0)
{
 //do something
}


或者转化成DOM对象来判断,代码如下:
if($("tt")[0])
{
 //do something
}

 

 

 

 


2.3 jQuery选择器

JavaScript中选择器:
1. document.getElementById()  通过标签id获取元素
2. document.getElementsByTagName() 通过标签名获取元素
3. document.getElementsName()  通过标签的name字段获取元素

 

HTML页面示例:

<div class="one" id="one">
 id为one,class为one的div
 <div class="mini">class为mini</div>
</div>

<div class="one" id="two" title="test">
 id为two,class为one,title为test的div
 <div class="mini" title="other">class为mini,title为other</div>
 <div class="mini" title="test">class为mini,title为test</div>
</div>

<div class="one">
 <div class="mini">class为mini</div>
 <div class="mini">class为mini</div>
 <div class="mini">class为mini</div>
 <div class="mini"></div>
</div>

<div class="one">
 <div class="mini">class为mini</div>
 <div class="mini">class为mini</div>
 <div class="mini">class为mini</div>
 <div class="mini" title="tesst">class为mini,title为tesst</div>
</div>

<div style="display:none;" class="none">style的display为"none"的div</div>

<div class="hide">class为"hide"的div</div>

<div>
 包含input的type为"hidden"的div
 <input type="hidden" size="8" />
</div>

<span id="mover">正在执行动画的span元素.</span>

div,span,p
{
 width:140px;
 height:140px;
 margin:5px;
 background:#aaa;
 border:#000 1px solid;
 float:left;
 font-size:17px;
 font-family:Verdana;
}

div.mini
{
 width:55px;
 height:55px;
 background-color:#aaa;
 font-size:12px;
}

div.hide
{
 display:none;
}

  

 

jQuery选择器分为基本选择器、层次选择器、过滤选择器和表单选择器。

2.3.1 基本选择器
基本选择器是jQuery中最常用的选择器,也是最简单的选择器,它通过元素id、class和标签名等来查找DOM元素。在网页中,每个id名称只能使用一次,class允许重复使用。



 

2.3.2 层次选择器
如果想通过DOM元素之间的层次关系来获取特定元素,例如后代元素、子元素、相邻元素和兄弟元素等,那么层次选择器是一个非常好的选择。



 

2.3.3 过滤选择器
过滤选择器主要是通过特定的过滤规则来筛选出所需的DOM元素,过滤规则与CSS中的伪类选择器语法相同,即选择器都以一个冒号(:)开头。按照不同的过滤规则,过滤选择器可以分为基本过滤、内容过滤、可见性过滤、属性过滤、子元素过滤和表单对象属性过滤选择器。

1. 基本过滤选择器



 

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



 

3. 可见性过滤选择器
根据元素的可见或不可见状态来选择相应的元素。
在可见性过滤选择器中,需要注意选择器:hidden,这不仅包括样式属性display为“none”的元素,也包括文本隐藏域(<input type="hidden" />)和visibility:hidden之类的元素。



 
show()是jQuery的方法,它的功能是显示元素,3000是时间,单位是毫秒。


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



 

5. 子元素过滤选择器
过滤规则相对于其它的选择器稍微有些复杂。



 
:nth-child()选择器是很常用的子元素过滤选择器,详细功能如下。
(1):nth-child(even)能选取每个父元素下的索引值是偶数的元素。
(2):nth-child(odd)能选取每个父元素下的索引值是奇数的元素。
(3):nth-child(2)能选取每个父元素下的索引值等于2的元素。
(4):nth-child(3n)能选取每个父元素下的索引值是3的倍数的元素,(n从0开始)。
(5):nth-child(3n+1)能选取每个父元素下的索引值是(3n+1)的元素,(n从0开始)。


6. 表单对象属性过滤选择器
主要是对所选择的表单元素进行过滤。



 

2.3.4 表单选择器
为了使用户能够更加灵活地操作表单,jQuery中专门加入了表单选择器。



 


2.5 选择器中的一些注意事项
1. 选择器中含有“.”、“#”、“(”或“]”等特殊字符
根据W3C的规定,属性值中是不能含有这些特殊字符的。这种特殊字符通过\\来转义。
例如:
<div id="id[1]">cc</div>
$("#id\\[1\\]");

 

2. 选择器中含有空格
多一个空格或少一个空格也许会得到截然不同的结果。


2.6 案例研究-某网站品牌列表的效果
几个jQuery方法如下:
1. show():显示隐藏的匹配元素。
2. css(name, value):给元素设置样式。
3. text(string):设置所有匹配元素的文本内容。
4. filter(expr):筛选出与指定表达式匹配的元素集合,其中expr可以是多个选择器的组合。
5. addClass(class):为匹配的元素添加指定的类名。
6. toggle(fn,fn,...):用来交替一组动作。

必须要考虑到禁用或者不支持JavaScript浏览器(用户代理)。另外,这点对于搜索引擎优化也特别有帮助,毕竟当前的搜索引擎爬虫基本都不支持JavaScript。

 

 

附: jQuery选择器总结 http://abe.iteye.com/blog/1075479

  • 大小: 266.2 KB
  • 大小: 142.6 KB
  • 大小: 297.5 KB
  • 大小: 166.8 KB
  • 大小: 43.8 KB
  • 大小: 29.9 KB
  • 大小: 77.2 KB
  • 大小: 41.8 KB
  • 大小: 249.2 KB
  • 大小: 71.3 KB
分享到:
评论

相关推荐

    一些有关哈希函数的随记

    这篇随记将探讨哈希函数的基本概念、性质以及在实际应用中的重要性。 哈希函数,也称为散列函数,是一种特殊的算法,它将任意长度的输入(也称为预映射或消息)转化为固定长度的输出,这个输出通常被称为哈希值或...

    随记_电气_

    【标题】:“随记_电气_”提示我们这是一份关于电气工程领域的个人笔记或学习心得,可能包含了一些作者在学习或实践中积累的电气知识。 【描述】:“电气相关的知识,随手写的,不知道行不行11111”表明这份文档...

    linux net 管理随记

    linux net 管理随记,留着个人备忘

    互联网公司实习日记随记参考.pdf

    互联网公司实习日记随记参考.pdf互联网公司实习日记随记参考.pdf互联网公司实习日记随记参考.pdf互联网公司实习日记随记参考.pdf互联网公司实习日记随记参考.pdf互联网公司实习日记随记参考.pdf

    git随记 git

    git随记 git

    c++随记.docx

    ### C++ 随记知识点总结 #### 一、内存管理与 new/delete 操作符 在 C++ 中,`new` 和 `delete` 是用于动态内存分配的关键字。`new` 用于在堆区分配内存,`delete` 用于释放之前通过 `new` 分配的内存。使用 `new`...

    面试随记???随时更新

    面试随记???随时更新

    EHCache的使用随记

    **EHCache的使用随记** EHCache是一款广泛应用于Java环境中的高效、易用且功能丰富的内存缓存系统。它能够显著提升应用性能,通过将常用数据存储在内存中,避免了反复从数据库读取,降低了I/O延迟。本文将探讨...

    网络原理随记.pdf

    计算机网络原理随记 在本资源中,我们将讨论计算机网络的基本概念、发展历程、网络架构、协议栈、数据传输、网络互通、安全性等方面的知识点。 计算机网络的基本概念 计算机网络是指将多个计算机设备连接起来,以...

    重点小学生寒假记随记大全.doc

    重点小学生寒假记随记大全.doc

    c#随记.docx

    C#是一种由微软开发的面向对象的编程语言,它结合了C++的高效性和Java的简洁性,被誉为最优秀的编程语言之一。C#是专为.NET框架设计的,因此在.NET环境中具有极高的兼容性和可操作性。.NET Framework包含了公共语言...

    随记app,微博与博客整合

    随记App是一款集成微博与博客功能的毕业设计项目,旨在为用户提供一个统一的平台来管理和分享他们的日常思考和生活点滴。这个项目分为客户端和服务端两部分,分别实现了用户交互界面和后台数据处理。 在Android...

    NativeJS随记 - 浅析JavaScript Events

    标题中的“NativeJS随记 - 浅析JavaScript Events”表明这篇博客主要讨论的是JavaScript中的事件处理机制。JavaScript事件是Web开发中的重要组成部分,它允许我们响应用户的交互或浏览器的内部变化。在这里,我们将...

    公司法务实习日记随记三篇.pdf

    公司法务实习日记随记三篇.pdf

    会计专业毕业实习日记随记篇.pdf

    会计专业毕业实习日记随记篇.pdf

    重点小学生母亲节日记随记大全.doc

    重点小学生母亲节日记随记大全.doc

    小学三年级秋游日记随记五篇.pdf

    小学三年级秋游日记随记五篇.pdf

    随记小时光设计书1

    在"随记小时光设计书1"中,我们主要讨论的是用户信息和手账信息的设计,特别是在数据库方面的应用。这个设计涉及到用户信息的多个关键组成部分,包括昵称、用户名、密码、邮箱、手机号以及权限和加密key的管理。下面...

    读书笔记:Java并发编程之美阅读随记.zip

    读书笔记:Java并发编程之美阅读随记

    2021-2022年收藏的精品资料辛辛那提1000维修随记.doc

    【辛辛那提1000维修随记】是一份关于数控系统维修的珍贵文档,主要涉及美国辛辛那提·米拉克龙公司的ACRAMATIC系列数控装置,特别是1994年推出的先进CNC控制系统——A2100。这篇随记详细记录了从1950年代早期的数控...

Global site tag (gtag.js) - Google Analytics