这里是普通文章模块栏目内容页
$()使用

jQuery-Selectors(选择器)的使用(一、基本篇)

本系列文章主要讲述jQuery框架的选择器(Selectors)使用方法,我将以实例方式进行讲述,以简单,全面为基础,不会涉及很深,我的学习方法:先入门,后进阶!
本系列文章分为:基本篇、层次篇、简单篇、内容篇、可见性篇、属性篇、子元素篇、表单篇、表单对象属性篇共9篇文章。
您对本系列文章有任何建议或意见请发送到邮箱:sjzlgt@qq.com
由于是第一次写技术性系列文章,难免会出错或代码BUG,欢迎指出,在此谢过!
您可以到jQuery官网来学习更多的有关jQuery知识。

1. #id用法
定义:根据给定的ID匹配一个元素。
返回值:Element
参数:id (String) : 用于搜索的,通过元素的 id 属性中给定的值
实例:将ID为”div_red”的DIV的边框改为红色
代码:$(“#div_red”).css(“border”,”red 2px solid”); //点击按钮一将执行这句代码
DIV ID=”div_red”

扩展:#id中的id可以是页面任何元素的id,如input,btuuon,div,table,span等等

2. element用法
定义:根据给定的元素名匹配所有元素。
返回值:Array<Element>
参数:element (String) : 一个用于搜索的元素。指向 DOM 节点的标签名。
实例:将页面<P>标记内的文字颜色改为红色
代码:$(“p”).css(“color”,”red”); //点击按钮二将执行这句代码

P标记1 ID=”p1″

P标记2 无ID

扩展:参数值可以是页面任何元素,如div,button,div,table,tr,td,p,h1,span,input

3. .class用法
定义:根据给定的类(样式名称)匹配元素。
返回值:Array<Element>
参数:class (String) 一个用以搜索的类(样式名称)。一个元素可以有多个类(样式名称),只要有一个符合就能被匹配到。
实例:将页面所有引用了”.red_test”样式的元素背景颜色改为蓝色
代码:$(“.red_test”).css(“background-color”,”blue”); //点击按钮三将执行这句代码
DIV ID=”div_red_1″ calss=”red_test”
DIV ID=”div_red_2″ 无class

SPAN ID=”span_red_1″ calss=”red_test”

扩展:可以看一下jQuery官网上Selectors/.class的实例。

4. *用法
定义:匹配所有元素 多用于结合上下文来搜索。
返回值:Array<Element>
实例:查看页所有元素的数量
代码:$(“*”).length; //点击按钮四将执行这句代码
扩展:可以看一下jQuery官网上Selectors/*的实例。

5. selector1,selector2,selectorN用法
定义:将每一个选择器匹配到的元素合并后一起返回。你可以指定任意多个选择器,并将匹配到的元素合并到一个结果内。
返回值:Array<Element>
参数:selector1 (Selector) : 一个有效的选择器 selector2 (Selector) : 另一个有效的选择器 selectorN (Selector) : (可选) 任意多个有效选择器
实例:将页面上所有引用名称为”li_test”样式的<Li>元素和ID为”li_red”的<Li>元素的边框改为绿色,宽度为5px
代码:$(“.red_test,#btn_5″).css(“border”,”5px solid Green”); //点击按钮五将执行这句代码

* Li
* Li id=”li_red”
* Li
* Li
* Li
* Li

jQuery选择器的使用灵活度非常高,至此,您可以利用本文中的四种选择器和上一篇中所讲的选择器组合并看效果,相信你会看到足以令你震撼的结果!
1. ancestor descendant用法
定?? 义:在给定的祖先元素下匹配所有的符合条件后代元素
返回值:Array
参?? 数:ancestor (Selector):任何有效选择器 descendant (Selector):用以匹配元素的选择器,并且它是第一个选择器的后代元素
实?? 例:将ID为”div_1″的DIV中所有的Input元素的背景色改为红色
代码: $(“div_1 input”).css(“background-color”,”red”); //点击按钮一将执行这句代码

DIV ID=”div_1″
DIV ID=”div_2″
DIV ID=”div_3″
DIV ID=”div_4″

DIV ID=”div_5″
DIV ID=”div_5_1″

注意:本实例请与第2个用法的实例作对比,看其控制范围!
2. parent > child用法
定?? 义:在给定的父元素下匹配所有的子元素
返回值:Array
参?? 数:parent (Selector):任何有效选择器 child (Selector): 用以匹配元素的选择器,并且它是第一个选择器的子元素
实?? 例:将ID为”div_a1″的DIV中所有的Input元素的背景色改为红色
代码: $(“#div_a1 > input”).css(“background-color”,”red”); //点击按钮二将执行这句代码

DIV ID=”div_a1″
DIV ID=”div_a2″
DIV ID=”div_a3″
DIV ID=”div_a4″

DIV ID=”div_a5″
DIV ID=”div_a5_1″
3. prev + next用法
定?? 义:匹配所有紧接在 prev 元素后的 next 元素
返回值:Array
参?? 数:prev (Selector):任何有效选择器 next (Selector):一个有效选择器并且紧接着第一个选择器
实?? 例:将ID为”div_b1″的DIV中所有span元素后紧跟的input元素的背景色改为红色
代码:$(“#div_b1 span + input”).css(“background-color”,”red”); //点击按钮三将执行这句代码

DIV ID=”div_b1″
span

DIV ID=”div_b2″
span
DIV ID=”div_b3″
span
DIV ID=”div_b4″
span

DIV ID=”div_b5″
DIV ID=”div_b5_1″ span

注意:第一个选择器我用了ancestor descendant用法,您也可以尝试其它用法。本例请与下面第4点的实例作对比并看效果!
4. prev ~ siblings用法
定?? 义:匹配 prev 元素之后的所有 siblings 元素
返回值:Array
参?? 数:prev (Selector):任何有效选择器 siblings (Selector):一个选择器,并且它作为第一个选择器的同辈
实?? 例:将ID为”div_c1″的DIV中所有与span元素之后平级的input元素的背景色改为红色
代码:$(“#div_c1 span ~ input”).css(“background-color”,”red”); //点击按钮四将执行这句代码

DIV ID=”div_c1″
span

DIV ID=”div_c2″
span
DIV ID=”div_c3″
span
DIV ID=”div_c4″
span

DIV ID=”div_c5″
DIV ID=”div_c5_1″ span

注意:DIV ID=”div_c1″ 和 ID=”div_c4″中的span元素前的input并未改变背景色,因为第二个选择器查找第一个选择器之后的元素

1. :first用法
定?? 义:匹配找到的第一个元素
返回值:Element
实?? 例:将ID为”ul_1″的ul中的第一个Li元素的背景色改为红色
代?? 码: $(“#ul_1 li:first”).css(“background-color”,”red”); //点击按钮一将执行这句代码

ul ID=”ul_1″

* Li 1
* Li 2
* Li 3
* Li 4
* Li 5
* Li 6
* Li 7
* Li 8

2. :last用法
定?? 义:匹配找到的最后一个元素
返回值:Element
实?? 例:将ID为”ul_2″的ul中的最后一个Li元素的背景色改为红色
代?? 码: $(“#ul_2 li:last”).css(“background-color”,”red”); //点击按钮二将执行这句代码

ul ID=”ul_2″

* Li 1
* Li 2
* Li 3
* Li 4
* Li 5
* Li 6
* Li 7
* Li 8

3. :not(selector)用法
定?? 义:去除所有与给定选择器匹配的元素
返回值:Array
参?? 数:selector (Selector) : 用于筛选的选择器
实?? 例:将ID为”ul_3″的ul中除最后一个Li元素以外的其他Li元素的背景色改为红色
代?? 码: $(“#ul_3 li:not(li:last)”).css(“background-color”,”red”); //点击按钮三将执行这句代码

ul ID=”ul_3″

* Li 1
* Li 2
* Li 3
* Li 4
* Li 5
* Li 6
* Li 7
* Li 8

扩展:你可以试试执行 $(“li:not(li:last)”).css(“background-color”,”red”); 这句代码,看看有什么效果
4. :even用法
定?? 义:匹配所有索引值为偶数的元素,从 0 开始计数
返回值:Array
实?? 例:将ID为”ul_4″的ul中索引为偶数的Li元素的背景色改为红色(注:索引从0开始)
代?? 码: $(“#ul_4 li:even”).css(“background-color”,”red”); //点击按钮四将执行这句代码

ul ID=”ul_4″

* Li 1
* Li 2
* Li 3
* Li 4
* Li 5
* Li 6
* Li 7
* Li 8

5. :o dd用法
定?? 义:匹配所有索引值为奇数的元素,从 0 开始计数
返回值:Array
实?? 例:将ID为”ul_5″的ul中索引为奇数的Li元素的背景色改为红色(注:索引从0开始)
代?? 码: $(“#ul_5 li:odd”).css(“background-color”,”red”); //点击按钮五将执行这句代码

ul ID=”ul_5″

* Li 1
* Li 2
* Li 3
* Li 4
* Li 5
* Li 6
* Li 7
* Li 8

6. :eq(index)用法
定?? 义:匹配一个给定索引值的元素
返回值:Element
参?? 数:index (Number) : 从 0 开始计数
实?? 例:将ID为”ul_6″的ul中索引为3的Li元素的背景色改为红色(注:索引从0开始)
代?? 码: $(“#ul_6 li:eq(3)”).css(“background-color”,”red”); //点击按钮六将执行这句代码

ul ID=”ul_6″

* Li 1
* Li 2
* Li 3
* Li 4
* Li 5
* Li 6
* Li 7
* Li 8

7. :gt(index)用法
定?? 义:匹配所有大于给定索引值的元素
返回值:Array
参?? 数:index (Number) : 从 0 开始计数
实?? 例:将ID为”ul_7″的ul中索引值大于3的Li元素的背景色改为红色(注:索引从0开始)
代?? 码: $(“#ul_7 li:gt(3)”).css(“background-color”,”red”); //点击按钮七将执行这句代码

ul ID=”ul_7″

* Li 1
* Li 2
* Li 3
* Li 4
* Li 5
* Li 6
* Li 7
* Li 8

8. :lt(index)用法
定?? 义:匹配所有小于给定索引值的元素
返回值:Array
参?? 数:index (Number) : 从 0 开始计数
实?? 例:将ID为”ul_8″的ul中索引值小于3的Li元素的背景色改为红色(注:索引从0开始)
代?? 码: $(“#ul_8 li:lt(3)”).css(“background-color”,”red”); //点击按钮八将执行这句代码

ul ID=”ul_8″

* Li 1
* Li 2
* Li 3
* Li 4
* Li 5
* Li 6
* Li 7
* Li 8

9. :header用法
定?? 义:匹配如 h1, h2, h3之类的标题元素
返回值:Array
实?? 例:将ID为”div_1″的DIV中所有header(标题)元素的背景色改为红色
代?? 码: $(“#div_1 :header”).css(“background-color”,”red”); //点击按钮九将执行这句代码

DIV ID=”div_1″P标记

span标记
H1
H2
H3
H4
H5
H6

10. :animated用法
定?? 义:匹配所有正在执行动画效果的元素
返回值:Array
实?? 例:将ID为”div_2″的DIV中没有执行动画效果的元素的背景色改为红色
代?? 码: $(“#div_2 :not(:animated)”).css(“background-color”,”red”); //点击按钮十将执行这句代码
DIV id=”div_2″
span标记

1. :input用法 定?? 义:匹配所有 input, textarea, select 和 button 元素

2. :text用法 定?? 义:匹配所有的单行文本框

3. :password用法 定?? 义:匹配所有密码框