从零开始学习jQuery-------jQuery元素选择器(三)

时间:2022-05-17 15:09:52

下面我们来介绍一下jQuery元素选择器,在Web开发中我们最常用的操作是获取元素,然后对获取的元素进行一系列的操作,jQuery根据获取页面元素的不同,可以将jQuery选择器分为四大类:基本选择器、层次选择器、过滤选择器、表单选择器,其中过滤选择器有可以分为简单过滤选择器、内容过滤选择器、可见性过滤选择器、属性过滤选择器、子元素过滤选择器、表单对象属性过滤器。

jQuery基本选择器:

选择器

功能描述

返回值

#id

根据给定的ID匹配一个元素

单个元素

element

根据给定的元素匹配所有的元素

元素集合

.class

根据给定的类匹配元素

元素集合

*

匹配所有的元素

元素结合

selector,selector

将每一个匹配到的元素合并一起返回

元素集合

<body>
<div class="classframe">
<div id="divone">divone</div>
<div class="classone">classone</div>
<span>SPAN</span>
<h4>i am test</h4>
</div>

div
</body>
</html>
<script type="text/javascript">
$(function(){
/* 设置class为classframe的div样式 */
$("div.classframe").css({"width":"200px","height":"200px","background-color":"gray"});
/* 设置id为divone的div样式 */
$("div#divone").css({"display":"block","background-color":"#f00"});
$("div.classone").css({"display":"block","background-color":"#0f0"});
/* 设置div元素所有的span后代元素样式 */
$("div span").text("lyq");
/* 设置 span,h4元素样式 */
$("span,h4").css("background-color","yellow");
});
</script>

效果如下:

从零开始学习jQuery-------jQuery元素选择器(三)

jQuery层次选择器:

层次选择器通过DOM之间的层次关系获取元素,其主要的层次关系是后代、父子、相邻、兄弟关系,其通过获取某个元素后可以快速的获取与之相关联的元素。

选择器 功能描述 返回值
ancesor descendant 根据祖先元素匹配所有的后代元素 元素集合
parent>child 根据父元素匹配所有的子元素 元素集合
prev+next 匹配所有紧接在prev后的相邻元素 元素集合
prev~siblings 匹配所有的prev之后所有兄弟元素 元素集合

代码:

<ul id="ul1" style="">
<li><a href=""></a>1</li>
<li><a href=""></a>2</li>
<li id="li3"><a href="">test</a>3</li>
<li><a href=""></a>4</li>
<li><a href=""></a>5</li>
<li><a href=""></a>6</li>
<li><a href=""></a>7</li>
</ul> $(function () {
/* 设置ul元素所有的li子元素的样式 */
$("ul li").css("font-size","28px");
/* 设置#li3元素所有的a子元素的样式 */
$("#li3>a").css("background-color","red");
/* 设置#li3元素后面的li相邻元素的样式 */
$("#li3+li").text("相邻元素");
/* 设置#li3元素之后所有的li兄弟元素的样式 */
$("#li3~li").css("background-color","gray");
});

效果:

从零开始学习jQuery-------jQuery元素选择器(三)

过滤选择器------简单过滤选择器

过滤选择器根据某类规律规则进行元素匹配,书写时都以冒号(:)开头,简单过滤选择器是过滤选择器中使用最广泛的一种,详细规则如下。

选择器 功能描述 返回值
first()或者:first 获取第一个元素 单个元素
last()或者:last 获取最后一个元素 单个元素
:not(selector) 获取除给定选择器外的所有元素 元素集合
:even 获取所有索引值为偶数的,索引从0开始 元素集合
:odd 获取所有索引值为基数的元素 元素集合
:eq(index) 获取指定索引值得元素 单个元素
:gt(index) 获取所有大于指定索引的元素  
:header 获取所有标题类的元素 比如h1 h2 元素集合
:animated 获取正在执行动画效果的元素 元素集合
<ul id="test">
<li class="item1"></li>
<li class="item2"></li>
<li class="item3"></li>
<li class="item4"></li>
<li class="item5"></li>
<li class="item6"></li>
<li class="item7"></li>
<li class="item8"></li>
</ul> $(function () {
/* 查找ul的所有字元素的第一个 */
$("ul#test li:first").text("i am first");
$("ul#test li:last").text("i am last");
$("ul#test li:not(li.item2)").css("background-color","gray");
$("ul#test li:even").css("background-color","red");
$("ul#test li:odd").css("background-color","green");
$("ul#test li:eq(4)").text(" i am 4");
});

过滤选择器------内容过滤选择器

内容过滤选择器根据元素中的文字内容或者所包含的子元素特征获取元素,其文字内容可以模糊或者绝对匹配进行元素定位。

选择器 功能描述 返回值:
:contains(text) 获取包含给定文本的元素 元素集合
:empty 获取不包含子元素或者文本为空的元素 元素集合
:has(selector) 获取含有选择器所匹配的元素 元素集合
:parent 获取含有子元素或者有文本的元素 元素集合
<style type="text/css">
div{
width: 100px;
height:20px;
} </style> <div>ABCD</div>
<div><span></span></div>
<div>FH</div>
<div></div> $("div:contains('A')").css("font-size","20px");
$("div:empty").css("background-color","yellow");
$("div:parent").css("background-color","green");
$("div:has(span)").css("background-color","red");

从零开始学习jQuery-------jQuery元素选择器(三)

过滤选择器------可见性过滤选择器

可见性过滤选择器是指在页面中创建一个元素标签,如果我们将元素的display设置为none或者display时,我们可以根据可见性选择器获取元素。

功能描述 功能描述 返回值
:hidden 获取所有不可见的元素 元素集合
:visible 获取所有可见的元素 元素集合

过滤选择器------属性过滤选择器

属性过滤选择器根据元素的某个属性获取元素,如ID或者匹配属性值得内容,以“[]”表示属性。常用的属性有id、class、title等

选择器 功能描述 返回值
[attribute] 获取包含给定属性的元素 元素集合
[attribute=value] 获取等于给定属性值的元素 元素集合
[attribute!=value] 获取不等于给定属性值的元素 元素集合
[attribute^=value] 获取给定属性以某些值开始的元素 元素集合
[attribute$=value] 获取给定属性以某些值结尾的元素 元素集合
[attribute*=value] 获取给定属性以包含某些值的元素 元素集合
[attribute][attribute][attribute] 获取满足多个给定属性的元素 元素集合

比如以下几段代码,属性可以是 id class等

<div id="divid" class="divid"></div>
<div title="a" class="divid"> title a</div>
<div id="divab" title="ab" class="divab"></div>
<div title="abc">tilte abc</div> $("div[class='divid']").css("background-color","red");
$("div[title='ab'][id='divab']").css("background-color","green");

过滤选择器------子元素过滤选择器

在页面开发过程中,常常遇到要突出某行的需求,虽然我们可以通过基本过滤器的”eq(index)”,可以实现任意一个行列的显示,但是还是不能满足大量数据和多个表格的选择需求,为了实现这样的功能,jQuery可以通过子元素过滤选择器获取父元素中指定的某个元素。

选择器 功能描述 返回值
:nth-child(eq|even|odd|index) 获取每个父元素下的特定位置元素,索引号从1开始 元素集合
:first-child 获取每个父元素下的第一个元素 元素集合
:last-child 获取每个父元素下的最后一个字元素 元素集合
:only-child 获取每个父元素下的仅有一个子元素 元素集合
 
注意only-child只能是父元素下面只有一个字元素才能选择到。
 
<ul>
<li>item0</li>
<li>item1</li>
<li>item2</li>
<li>item3</li>
<li>item4</li>
</ul>
<ul>
<li>item5</li>
<li>item6</li>
<li>item7</li>
<li>item8</li>
<li>item9</li>
</ul> /*获取所有 ul下的子元素li的偶数列 */
$("ul li:nth-child(even)").css("background-color","red");
/* 获取第一个ul元素 */
$("ul:first").css("background-color","green");

从零开始学习jQuery-------jQuery元素选择器(三)

过滤选择器-------表单对象属性过滤选择器

表单对象属性过滤属性选择器通过表单中的某对象属性特征获取该类元素,如enabled,disabled,checked,selected

选择器 功能描述 返回值
:enabled 获取表单中所有属性为可用的元素 元素集合
:disabled 获取表单中所有属性为不可用的元素 元素集合
:checked 获取表单中所有属性为选中的元素 元素集合
:selected 获取表单中所有属性选中的option的元素 元素集合

.

表单选择器
无论是提交还是传递数据,表单在页面中的作用还是显而易见的,通过表单进行数据的提交或处理,都在前端页面中占据重要地位,为了让开发者更加方便的、高效的使用表单,jQuery选择器引入了表单选择器,该选择器专为表单量身打造,通过表单选择器可以快速的定位表单元素。
选择器 功能描述 返回值
:input 获取所有的input、textarea、select 元素集合
:text 获取所有的单行文本框 元素集合
:password 获取所有的密码框 元素集合
:radio 获取所有的单选按钮 元素集合
:checkbox 获取所有的复选框 元素集合
:submit 获取所有的提交按钮 元素集合
:image 获取所有的图像域 元素集合
:reset 获取所有的重置按钮 元素集合
:button 获取所有的按钮 元素集合
:file 获取所有的文件域 元素集合