博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
jQuery学习笔记:选择器(Selectors)
阅读量:6258 次
发布时间:2019-06-22

本文共 6081 字,大约阅读时间需要 20 分钟。

一、基本

1、#id
根据给定的ID匹配一个元素。
如果选择器中包含特殊字符,可以用两个斜杠转义。
返回值 Element
参数 
id (String) : 用于搜索的,通过元素的 id 属性中给定的值
示例:

$(document).ready(
function
() {
    
var
 oDiv 
=
 $(
"
#myDiv
"
);
    
if
 (oDiv)
        alert(oDiv.html());
});

文档片段:

<
div 
id
="notMe"
><
p
>
id="notMe"
</
p
></
div
>
<
div 
id
="myDiv"
>
id="myDiv"
</
div
>
 

有特殊字符的情况:

文档片段:

<
span 
id
="foo:bar"
>
test1
</
span
>
<
span 
id
="foo[bar]"
>
test2
</
span
>

jquery代码:

ContractedBlock.gif
Code

2、element

根据给定的元素名匹配所有元素
返回值 Array<Element>
参数 
element (String) : 一个用于搜索的元素。指向 DOM 节点的标签名。
示例:

ContractedBlock.gif
Code

文档片段:

<
div
>
DIV1
</
div
>
<
div
>
DIV2
</
div
>
<
span
>
SPAN
</
span
>

3、.class

根据给定的类匹配元素
返回值 Array<Element>
参数 
class (String) : 一个用以搜索的类。一个元素可以有多个类,只要有一个符合就能被匹配到。
示例:

ContractedBlock.gif
Code

文档片段:

    
<
div 
class
="notMe"
>
        div class="notMe"
</
div
>
    
<
div 
class
="myClass"
>
        div class="myClass"
</
div
>
    
<
span 
class
="myClass"
>
span class="myClass"
</
span
>

4、*

匹配所有元素,多用于结合上下文来搜索。
返回值 Array<Element>
示例:

ContractedBlock.gif
Code

5、selector1,selector2,selectorN

将每一个选择器匹配到的元素合并后一起返回。
可以指定任意多个选择器,并将匹配到的元素合并到一个结果内。
返回值 Array<Element>
参数 
selector1 (Selector) : 一个有效的选择器
selector2 (Selector) : 另一个有效的选择器
selectorN (Selector) : (可选) 任意多个有效选择器
示例:

ContractedBlock.gif
Code

二、层级

1、ancestor descendant
在给定的祖先元素下匹配所有的后代元素
返回值 Element
参数 
ancestor (Selector) : 任何有效选择器
descendant (Selector) : 用以匹配元素的选择器,并且它是第一个选择器的后代元素
示例:

ContractedBlock.gif
Code

文档片段:

ContractedBlock.gif
Code

2、parent > child

在给定的父元素下匹配所有的子元素
返回值 Array<Element>
参数 
parent (Selector) : 任何有效选择器
child (Selector) : 用以匹配元素的选择器,并且它是第一个选择器的子元素
示例:

ContractedBlock.gif
Code

3、prev + next

匹配所有紧接在 prev 元素后的 next 元素
返回值 Array<Element>
参数 
prev (Selector) : 任何有效选择器
next (Selector) :一个有效选择器并且紧接着第一个选择器
示例:

ContractedBlock.gif
Code

文档片段:

ContractedBlock.gif
Code

4、prev ~ siblings

匹配 prev 元素之后的所有 siblings 元素(sibling是“兄弟”的意思)
返回值 Array<Element>
参数 
prev (Selector) : 任何有效选择器
siblings (Selector) : 一个选择器,并且它作为第一个选择器的同辈
示例:

ContractedBlock.gif
Code

三、简单

1、:first
匹配找到的第一个元素
返回值 Element
示例:

ContractedBlock.gif
Code

文档片段:

<
table
>
  
<
tr
><
td
>
Header 1
</
td
></
tr
>
  
<
tr
><
td
>
Value 1
</
td
></
tr
>
  
<
tr
><
td
>
Value 2
</
td
></
tr
>
</
table
>

2、:last

匹配找到的最后一个元素
返回值 Element
示例:

ContractedBlock.gif
Code

3、:not(selector)

去除所有与给定选择器匹配的元素
在jQuery 1.3中,已经支持复杂选择器了(例如:not(div a) 和 :not(div,a))
返回值 Array<Element>
参数 
selector (Selector) : 用于筛选的选择器
示例:

ContractedBlock.gif
Code

4、:even

匹配所有索引值为偶数的元素,从 0 开始计数
返回值 Array<Element>
示例:

ContractedBlock.gif
Code

5、:odd

匹配所有索引值为奇数的元素,从 0 开始计数
返回值 Array<Element>
示例:

ContractedBlock.gif
Code

6、:eq(index)

匹配一个给定索引值的元素
返回值 Element
参数 
index (Number) : 从 0 开始计数
示例:

$(document).ready(
function
() {
    
var
 ele 
=
 $(
"
tr:eq(1)
"
); 
//
查找第二行
    
if
 (ele)
        alert(ele.html());
});

7、:gt(index)

匹配所有大于给定索引值的元素
返回值 Array<Element>
参数 
index (Number) : 从 0 开始计数
示例:

ContractedBlock.gif
Code

8、:lt(index)

匹配所有小于给定索引值的元素
返回值 Array<Element>
参数 
index (Number) : 从 0 开始计数
示例:

ContractedBlock.gif
Code

9、:header

匹配如 h1, h2, h3之类的标题元素
返回值 Array<Element>
示例:

//
给页面内所有标题加上背景色
$(document).ready(
function
() {
    $(
"
:header
"
).css(
"
background
"
"
Red
"
);
});

10、:animated

匹配所有正在执行动画效果的元素
返回值 Array<Element>
示例:

ContractedBlock.gif
Code

文档片段:

ContractedBlock.gif
Code

四、内容

1、:contains(text)
匹配包含给定文本的元素
返回值 Array<Element>
参数 
text (String) : 一个用以查找的字符串
示例:

ContractedBlock.gif
Code

2、:empty

匹配所有不包含子元素或者文本的空元素
返回值 Array<Element>
示例:

ContractedBlock.gif
Code

3、:has(selector)

匹配含有选择器所匹配的元素的元素
返回值 Array<Element>
参数 
selector (Selector) : 一个用于筛选的选择器
示例:

ContractedBlock.gif
Code

4、:parent

匹配含有子元素或者文本的元素
返回值 Array<Element>
示例:

ContractedBlock.gif
Code

文档片段:

ContractedBlock.gif
Code

五、可见性

1、:hidden
匹配所有的不可见元素,input 元素的 type 属性为 "hidden" 的话也会被匹配到
返回值 Array<Element>
示例:

ContractedBlock.gif
Code

2、:visible

匹配所有的可见元素
返回值 Array<Element>
示例:

ContractedBlock.gif
Code

By the way,可见性本质上是对应css里的visibility和display的属性设置,读者可自行试验。

六、属性
1、[attribute]
匹配包含给定属性的元素。注意,在jQuery 1.3中,前导的@符号已经被废除!如果想要兼容最新版本,只需要简单去掉@符号即可。
返回值 Array<Element>
参数 
attribute (String) : 属性名
示例:

ContractedBlock.gif
Code

2、[attribute=value]

匹配给定的属性是某个特定值的元素
返回值 Array<Element>
参数 
attribute (String) : 属性名
value (String) : 属性值。引号在大多数情况下是可选的。但在遇到诸如属性值包含"]"时,用以避免冲突。
示例:

ContractedBlock.gif
Code

文档片段:

<
input 
type
="checkbox"
 name
="newsletter"
 value
="Hot Fuzz"
 
/>
<
input 
type
="checkbox"
 name
="newsletter"
 value
="Cold Fusion"
 
/>
<
input 
type
="checkbox"
 name
="accept"
 value
="Evil Plans"
 
/>
 

3、[attribute!=value]

匹配所有不含有指定的属性,或者属性不等于特定值的元素。
此选择器等价于:not([attr=value])
要匹配含有特定属性但不等于特定值的元素,请使用[attr]:not([attr=value])
返回值 Array<Element>
参数 
attribute (String) : 属性名
value (String) : 属性值。引号在大多数情况下是可选的。但在遇到诸如属性值包含"]"时,用以避免冲突。
示例:

ContractedBlock.gif
Code

4、[attribute^=value]

匹配给定的属性是以某些值开始的元素
返回值 Array<Element>
参数 
attribute (String) : 属性名
value ( String) : 属性值。引号在大多数情况下是可选的。但在遇到诸如属性值包含"]"时,用以避免冲突。
示例:

ContractedBlock.gif
Code

5、[attribute$=value]

匹配给定的属性是以某些值结尾的元素
返回值 Array<Element>
参数 
attribute (String) : 属性名
value ( String) : 属性值。引号在大多数情况下是可选的。但在遇到诸如属性值包含"]"时,用以避免冲突。
示例:

ContractedBlock.gif
Code

6、[attribute*=value]

匹配给定的属性是以包含某些值的元素
返回值 Array<Element>
参数 
attribute (String) : 属性名
value ( String) : 属性值。引号在大多数情况下是可选的。但在遇到诸如属性值包含"]"时,用以避免冲突。
示例:

ContractedBlock.gif
Code

7、[selector1][selector2][selectorN]

复合属性选择器,需要同时满足多个条件时使用。
返回值 Array<Element>
参数 
selector1 (Selector) : 属性选择器
selector2 (Selector) : 另一个属性选择器,用以进一步缩小范围
selectorN (Selector) : 任意多个属性选择器
示例:

ContractedBlock.gif
Code

七、子元素

1、: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)
返回值 Array<Element>
参数 
index (Number) : 要匹配元素的序号,从1开始
示例:

ContractedBlock.gif
Code

文档片段:

<
ul
>
  
<
li
>
John
</
li
>
  
<
li
>
Karl
</
li
>
  
<
li
>
Brandon
</
li
>
</
ul
>
<
ul
>
  
<
li
>
Glen
</
li
>
  
<
li
>
Tane
</
li
>
  
<
li
>
Ralph
</
li
>
</
ul
>

2、:first-child

匹配第一个子元素
':first' 只匹配一个元素,而此选择符将为每个父元素匹配一个子元素
返回值 Array<Element>
示例:

ContractedBlock.gif
Code

3、:last-child

匹配最后一个子元素
':last'只匹配一个元素,而此选择符将为每个父元素匹配一个子元素
返回值 Array<Element>
示例:

ContractedBlock.gif
Code

4、:only-child

如果某个元素是父元素中唯一的子元素,那将会被匹配
如果父元素中含有其他元素,那将不会被匹配。
返回值 Array<Element>
示例:

ContractedBlock.gif
Code

八、表单

1、:input
匹配所有 input, textarea, select 和 button 元素
返回值 Array<Element>
示例:

ContractedBlock.gif
Code

文档片段:

ContractedBlock.gif
Code

ps:select下面有option的,竟然直接alert出了option的value,奇怪的结果!(按照定义这个应该是jquery的一个bug)

2、:inputType
匹配所有的type为inputType的input元素(hidden比较特殊,单独举例)
返回值 Array<Element>
示例:

ContractedBlock.gif
Code

3、:hidden

匹配所有不可见元素,或者type为hidden的元素
返回值 Array<Element>
示例:

ContractedBlock.gif
Code

九、表单对象属性

1、:enabled
匹配所有可用元素返回值 Array<Element>
示例:

ContractedBlock.gif
Code

2、:disabled

匹配所有不可用元素
返回值 Array<Element>
示例:

ContractedBlock.gif
Code

3、:checked

匹配所有选中的被选中元素(复选框、单选框等,不包括select中的option)
返回值 Array<Element>
示例:

ContractedBlock.gif
Code

4、:selected

匹配所有选中的option元素
返回值 Array<Element>
示例:

ContractedBlock.gif
Code

 

本文转自JeffWong博客园博客,原文链接:http://www.cnblogs.com/jeffwongishandsome/archive/2009/08/08/1538151.html,如需转载请自行联系原作者

你可能感兴趣的文章
使用eclipse创建android项目的时候为什么会生成两个项目
查看>>
常见内存错误的几点总结
查看>>
Extjs的各版本下载
查看>>
使用LVS实现负载均衡原理及安装配置详解
查看>>
hdu 3449 Consumer (依赖01背包)
查看>>
c#public、private、protected、internal、protected internal
查看>>
hdoj-5099-Comparison of Android versions
查看>>
小波变换简单介绍(2)
查看>>
Dubbo -- 系统学习 笔记 -- 示例 -- 线程模型
查看>>
Dubbo -- 系统学习 笔记 -- 示例 -- 多注册中心
查看>>
使用C++实现学生管理系统
查看>>
BroadcastReceiver类
查看>>
大杂烩 -- 查找单向链表倒数第m个元素
查看>>
SQL笔记 --- 数据库设计步骤(转)
查看>>
cocos2d-iphone 动作
查看>>
[Preact] Integrate react-router with Preact
查看>>
函数指针的说明
查看>>
Python操作redis学习系列之(集合)set,redis set详解 (六)
查看>>
Linux时间子系统之二:表示时间的单位和结构
查看>>
leetcode 221: Maximal Square
查看>>