jqyery选择器
jquery选择器是用来查找元素节点的,jQuery中$()函数最强大最常用的功能之一就是使用选择器选择DOM元素。
jquery选择器总共有四大类,分别为基本选择器,层次选择器,过滤选择器和属性选择器,下面我们分别来看一下这四种jquery选择器。
1、jquery的基本选择器
基本选择器是JQuery最常用的选择器,也是最简单的选择器,它通过元素id、class和标签名来查找DOM元素。
注意:在网页中id只能使用一次,即id具有唯一性,但class是允许重复使用的。
2、jquery层次选择器
层次选择器通过DOM元素间的层次关系来获取元素,主要的层次关系包括父子、后代、相邻、兄弟关系。
·$(“form input”)后代选择器,选择所有的form元素中的input元素
·$("#main > *")子代选择器, 选择id值为main的所有的子元素
·$(“label + input”)相邻选择器(仅指下一个),label元素的下一个input元素节点
·$("#prev ~ div") 同胞选择器,id为prev同一级的所有div
说明:只有这个方法返回的是JQuery对象才能进行链式操作。
3、jquery过滤选择器
过滤选择器主要是通过特定的过滤规则来筛选出所需的DOM元素,过滤规则与CSS中的伪类选择器语法相同,即选择器都以一个冒号(:)开头。按照不同的过滤规则,过滤选择器可以分为基本过滤,内容过滤,可见性过滤,属性过滤,子元素过滤和表单 对象属性过滤选择器共六种选择器。下面我们分别来简单看一下jquery这六种过滤选择器
(1)jquery基本过滤选择器
过滤选择器是根据某类过滤规则进行元素的匹配,书写时都以(:)开头;简单过滤选择器是过滤选择器中使用最广泛的一种。
$(“tr:first”):选择所有tr元素的第一个
$(“tr:last”):选择所有tr元素的最后一个
$(“input:not(:checked) + span”) :过滤掉:checked的选择器的所有的input元素
$(“tr:even”):选择所有的tr元素的第0,2,4… …个元素(注意:因为所选择的多个元素时为数组,所以序号是从0开始)
$(“tr:odd”):选择所有的tr元素的第1,3,5… …个元素
$(“td:eq(2)”):选择索引为2的那个td元素
$(“td:gt(4)”) :选择td大于4的所有元素
$(“td:lt(4)”):选择td小于4的所有元素
$(":header"):匹配如 h1, h2, h3之类的标题元素.这个是专门用来获取h1,h2这样的标题元素
$(“div:animated”):匹配所有正在执行动画效果的元素
(2)jquery内容过滤选择器
内容过滤选择器的过滤规则主要体现在它所包含的子元素和文本内容上。
$(“div:contains(‘John’)”) :选择所有div中含有John文本的元素
$(“td:empty”) :选择所有的为空(也不包括文本节点)的td元素的数组
$(“div:has§”) :选择所有含有p标签的div元素
$(“td:parent”):选择所有的以td为父节点的元素数组
(3)jquery可见性过滤选择器
可见度过滤选择器是根据元素的可见和不可见状态来选择相应的元素。
- $(“div:hidden”):选择所有的被hidden的div元素
- $(“div:visible”):选择所有的可视化的div元素
HTML
<p class="show">22222</p> <p class="hidden">22222</p> <input type="button" value="显示"> <input type="button" value="隐藏">
script
$(".hidden").css("display","none") $(function(){ $("input:eq(0)").click(function(){ //隐藏的p显示(对当前操作) $("p:hidden").show() }) $("input:eq(1)").click(function(){ //可见的p隐藏 $("p:visible").hide() }) })
(4)jquery属性过滤选择器
属性过滤选择器的过滤规则是通过元素的属性来获取相应的元素。