下面我们来介绍一下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层次选择器:
层次选择器通过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");
});
效果:
过滤选择器------简单过滤选择器
过滤选择器根据某类规律规则进行元素匹配,书写时都以冒号(:)开头,简单过滤选择器是过滤选择器中使用最广泛的一种,详细规则如下。
选择器 | 功能描述 | 返回值 |
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");
过滤选择器------可见性过滤选择器
可见性过滤选择器是指在页面中创建一个元素标签,如果我们将元素的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 | 获取每个父元素下的仅有一个子元素 | 元素集合 |
<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");
过滤选择器-------表单对象属性过滤选择器
表单对象属性过滤属性选择器通过表单中的某对象属性特征获取该类元素,如enabled,disabled,checked,selected
选择器 | 功能描述 | 返回值 |
:enabled | 获取表单中所有属性为可用的元素 | 元素集合 |
:disabled | 获取表单中所有属性为不可用的元素 | 元素集合 |
:checked | 获取表单中所有属性为选中的元素 | 元素集合 |
:selected | 获取表单中所有属性选中的option的元素 | 元素集合 |
.
选择器 | 功能描述 | 返回值 |
:input | 获取所有的input、textarea、select | 元素集合 |
:text | 获取所有的单行文本框 | 元素集合 |
:password | 获取所有的密码框 | 元素集合 |
:radio | 获取所有的单选按钮 | 元素集合 |
:checkbox | 获取所有的复选框 | 元素集合 |
:submit | 获取所有的提交按钮 | 元素集合 |
:image | 获取所有的图像域 | 元素集合 |
:reset | 获取所有的重置按钮 | 元素集合 |
:button | 获取所有的按钮 | 元素集合 |
:file | 获取所有的文件域 | 元素集合 |