jQuery_1选择器的适用
首先声明本次随笔大部分来源于huizhi网,单纯用于自己记笔记
1 jquery基本介绍
1.1 搭建开发环境
下载jquery
在jQuery官网:<a href="http://jquery.com">http://jquery.com</a>中下载最新版本的jQuery。
引入jquery
<script src="http://libs.baidu.com/jquery/1.9.0/jquery.js"></script>
1.2 语法形式
jQuery 语法是为HTML元素的选取编制的,可以对元素执行某些操作。
基础语法是:$(selector).action()
- 美元符号定义jQuery
- 选择符(selector)"查询"和"查找"HTML元素
- jQuery的action()执行对元素的操作
$(this).hide()- 隐藏当前元素
$("p").hide()- 隐藏所有段落
$(".test").hide()- 隐藏所有class = "test" 的所有元素
$("#test").hide()- 隐藏所有 id = "test" 的元素
1.3 hello world
$(document).ready(function (){ //代码段 });
可以简化成
$(function (){ //代码段 });
2 选择器的使用
典型选择器的句法形式 $(selector).methodName();
selector是一个字符串表达式,由于识别DOM中的元素,然后使用jQuery提供的方法集合加以设置。
根据所获取页面中元素的不同。可以将jQuery选择器分为几类:
2.1 基础选择器
基础选择器是jQuery中使用最频繁的选择器,它由元素id、class、多个选择符组成,通过基本选择器可以实现大多数页面元素的查找,如下表格:
示例 所有的元素标记全部显示,然后通过jQuery基础选择器隐藏相对应的页面标记。
$(function(){ //id匹配元素 $("#divOne").css("display","none"); }) $(function(){ //元素名匹配元素 $("div span").css("display","none"); }) $(function(){ //类匹配元素 $(".clsFrame .clsOne").css("display","none"); }) $(function(){ //匹配所有元素 $("*").css("display","none"); }) $(function(){ //合并匹配元素 $("#divOne,span").css("display","none"); })
2.2 jQuery层次选择器
层次选择器通过DOM元素间的层次关系获取元素,其主要的层次关系包括后代、父子、相邻、兄弟关系,通过其中某类关系可以方便快捷地定位元素,详细说明如下表:
注意:ancestor descendant 与 parent > child 所选择的元素集合是不同的,前者的层次关系是祖先与后代,而后者是父子关系;另外prev + next 可以使用 .next() 代替,而prev ~ siblings可以使用nextAll()代替。
示例 所有的元素标记初始全部显示,然后通过jQuery层次选择器隐藏相对应的页面标记。
$(function(){ //匹配后代元素 $("div span").css("display","none");//隐藏div中所有的<span>标记 }) $(function(){ //匹配子元素 $("div>span").css("display","none");//隐藏div中子span标记 }) $(function(){ //匹配后面元素 $("#divMid + div").css("display","none");//隐藏id为divMid元素后的下一个div $("#divMid").next().css("display","none"); }) $(function(){ //匹配所有后面元素 $("#divMid ~ div").css("display","none");//隐藏id为divMid元素后的所有div $("#divMid").nextAll().css("display","none"); }) $(function(){ //匹配所有相邻元素 $("#divMid").siblings("div").css("display","none");//隐藏id为divMid元素的所有相邻div })
2.3 jquery简单过滤器
过滤选择器根据某类g过滤规则进行元素的匹配,书写时都以冒号(:)开头;简单过滤选择器是过滤选择器中使用最广泛的一种,详细如下表:
示例演示 通过简单过滤选择器获取元素,将选中的元素改变其类名称,从而突出其被选中的状态、
...省略代码 <script type="text/javascript"> $(function(){ //增加第一个元素的类别 $("li:first").addClass("GetFocus");// }) $(function(){ //增加最后一个元素的类别 $("li:last").addClass("GetFocus"); // }) $(function(){ //增加去除所有与给定选择器匹配的元素类别 $("li:not(.NotClass)").addClass("GetFocus");// }) $(function(){ //增加所有索引值为偶数的元素类别,从0开始计数 $("li:even").addClass("GetFocus"); // }) $(function(){ //增加所有索引值为奇数的元素类别,从0开始计数 $("li:odd") .addClass("GetFocus"); // }) $(function(){ //增加一个给定索引值的元素类别,从0开始计数 $("li:eq(1)").addClass("GetFocus"); // }) $(function(){ //增加所有大于给定索引值的元素类别,从0开始计数 $("li:gt(1)").addClass("GetFocus"); // }) $(function(){ //增加所有小于给定索引值的元素类别,从0开始计数 $("li:lt(4)").addClass("GetFocus"); // }) $(function(){ //增加标题类元素类别 $("div h1").css("width","238"); // $(":header").addClass("GetFocus"); // }) $(function(){ //增加动画效果元素类别 animateIt(); $("#spanMove:animated").addClass("GetFocus"); // }) function animateIt() {//动画效果 $("#spanMove").slideToggle("slow",animateIt); } </script> ...省略主体代码
2.4 内容过滤选择器
内容过滤选择器根据元素中的文字内容或所包含的子元素特征获取元素,其文字内容可以模糊或者绝对匹配进行元素定位,详细如下:
示例 页面中,创建四个div标记,并在其中一个div中新建一个span标记,其余div标记中输入内容或空,通过内容过滤选择器获取元素,并显示在页面中。
...省略代码 <script type="text/javascript"> $(function(){ //显示包含给定文本的元素 $("div:contains('Div')").css("display","block"); }) $(function(){ //显示所有不包含子元素或者文本的空元素 $("div:empty").css("display","block"); }) $(function(){ //显示含有选择器所匹配的元素 $("div:has(span)").css("display","block");//显示含有span标记的元素 }) $(function(){ //显示含有子元素或者文本的元素 $("div:parent").css("display","block"); }) </script> ...省略代码 <div>Div1</div> <div>2</div> <div></div> <div><span>Span</span></div> ...省略代码
2.5 可见性过滤选择器
可见性过滤选择器根据元素是否可见的特征获取元素,详细如下:
提示:hidden选择器所选择的不仅包括样式为display:none所有元素,还包括属性type="hidden"和样式为visibility:hidden的所有元素
示例 页面中,新建一个span和div标记,分别设置标记的display属性为"none"和"block";然后根据可见性过滤选择器显示页面元素。
...省略代码 <script type="text/javascript"> $(function(){ //增加所有可见元素的类别 $("span:hidden").show() $("div:visible").addClass("GetFocus"); }) $(function(){ //增加所有不可见元素类别 $("span:hidden").show().addClass(""); }) </script> ...jQuery操作的代码 <span style="display:none">Hidden</span> <div>Visible</div>
2.6 属性过滤选择器
示例 页面中,创建四个div标记,并设置不同的ID和Title属性值,然后通过属性过滤选择器获取所指定的元素集合,并显示在页面中。
...省略代码 <script type="text/javascript"> $(function(){ //显示所有包含id属性的元素 1 $("div[id]").show(3000); }) $(function(){ //显示所有属性title的值是"A"的元素 2 $("div[title='A']").show(3000); }) $(function(){ //显示所有属性title的值不是"A"的元素 3 $("div[title!='A']").show(3000); }) $(function(){ //显示所有属性title的值是"A"开始的元素 4 $("div[title^='A']").show(3000); }) $(function(){ //显示所有属性title的值是"C"结束的元素 5 $("div[title$='C']").show(3000); }) $(function(){ //显示所有属性title的值中含有"B"的元素 6 $("div[title*='B']").show(3000); }) $(function(){ //显示所有属性title的值中含有"B"且属性id的值是“divAB”的元素 7 $("div[id='divAB'][title*='B']").show(3000); }) </script> ...省略代码 <div id="divID">ID</div> <div title="A">title A</div> <div id="divAB" title="AB">ID title AB</div> <div title="ABC">title ABC</div> ...省略代码
2.7 子元素过滤选择器
在页面开发中,总是遇到突出指定某行的需求。如果实现单个表格的显示,用基本过滤选择器:eq(index)就能实现;但如果是大量数据的选择需求可以通过子元素过滤选择器轻松获取所有父元素中指定的某个元素 详细如下:
示例 描述:页面中,创建三个ul标记,前两个标记中设置四个li,后一个标记中设置一个li,通过子元素过滤选择器获取指定的页面元素,并改变其选择后的状态,显示在页面中。
...省略代码 <script type="text/javascript"> $(function(){ //增加每个父元素下的第2个子元素类别 1 $("li:nth-child(2)").addClass("GetFocus"); }) $(function(){ //增加每个父元素下的第1个子元素类别 2 $("li:first-child").addClass("GetFocus"); }) $(function(){ //增加每个父元素下的最后一个子元素类别 3 $("li:last-child").addClass("GetFocus"); }) $(function(){ //增加每个父元素下只有一个子元素类别 4 $("li:only-child").addClass("GetFocus"); }) </script> ...省略代码 <ul> <li>item 1-0</li> <li>item 1-1</li> <li>item 1-2</li> <li>item 1-3</li> </ul> <ul> <li>item 2-0</li> <li>item 2-1</li> <li>item 2-2</li> <li>item 2-3</li> </ul> <ul> <li>item 3-0</li> </ul> ...省略代码
2.8 表单对象属性过滤选择器
表单对象属性过滤选择器通过表单中的某对象属性特征获取该类元素,如enabled、disabled、checked、selected属性。详细如下:
示例 在表单中,通过表单对象属性过滤选择器获取某指定元素,并处理该元素。
<script type="text/javascript"> $(function(){ //增加表单中所有属性为可用的元素类别 $("#divA").show(3000); $("#form1 input:enabled").addClass("GetFocus"); }) $(function(){ //增加表单中所有属性为不可用的元素类别 2 $("#divA").show(3000); $("#form1 input:disabled").addClass("GetFocus"); }) $(function(){ //增加表单中所有被选中的元素类别 3 $("#divB").show(3000); $("#form1 input:checked").addClass("GetFocus"); }) $(function(){ //显示表单中所有option的元素内容 4 $("#divC").show(3000); $("#Span2").html("选中项是:" + $("select option:selected").text()); }) </script> ...省略代码 <form id="form1" style="width:244px"> <div id="divA"> <input type="text" class="clsIpt" value="可用文本框" /> <input type="text" class="clsIpt" value="不可用文本框" disabled="disabled"/> </div> <div id="divB"> <input type="checkbox" checked="checked" value="1" />选中 <input type="checkbox" value="0" />未选中 </div> <div id="divC"> <select multiple="multiple"> <option value="0">Option 0</option> <option value="1" selected="selected">Option 1</option> <option value="2">Option 2</option> <option value="3" selected="selected">Option 3</option> </select> <span id="Span2"></span> </div> </form>
result:
2.9 表单选择器
在表单中,为了使用更加方便和高效,在jQuery选择器中引入了表单选择器,通过它可以再页面中快速定位某表单对象。详细如下:
示例 在表单中,创建11种常用的表单对象,根据表单选择器,先显示出所有表单对象的总量,然后显示各种不同类型的表单对象。
<script type="text/javascript"> $(function(){ //显示input类型元素的总数量 1 $("#form1 div").html("表单共找出input类型元素" + $("#form1 :input").length); $("#form1 div").addClass("div"); }) $(function(){ //显示所有文本框对象 2 $("#form1 :text").show(3000); }) $(function(){ //显示所有密码框对象 3 $("#form1 :password").show(3000); }) $(function(){ //显示所有单选按钮对象 4 $("#form1 :radio").show(3000); $("#form1 #span1").show(3000); }) $(function(){ //显示所有复选框对象 5 $("#form1 :checkbox").show(3000); $("#form1 #span2").show(3000); }) $(function(){ //显示所有提交按钮对象 6 $("#form1 :submit").show(3000); }) $(function(){ //显示所有图片域对象 7 $("#form1 :image").show(3000); }) $(function(){ //显示所有重置按钮对象 8 $("#form1 :reset").show(3000); }) $(function(){ //显示所有按钮对象 9 $("#form1 :button").show(3000); }) $(function(){ //显示所有文件域对象 10 $("#form1 :file").show(3000); }) </script> <form id="form1" style="width:244px"> <input type="text" value="text" class="txt" /> <input type="password" value="password" class="txt" /> <input type="radio" /><span id="span1">radio</span> <input type="checkbox" /> <textarea class="txt">textarea</textarea> <select><option value="0">item 0</option></select> <span id="span2">checkbox</span> <input type="submit" value="submit" class="btn"/> <input type="image" title="image" src="image/logo.png" class="img" /> <input type="reset" value="reset" class="btn" /> <input type="button" value="button" class="btn" /> <input type="file" title="file" class="txt" /> <div id="divShow"></div> </form>