JQuery(一)页面加载,写入文本,对象转换,隐藏显示,基本选择器,层级选择器,基本过滤选择器,表单选择器,class操作,属性操作
JQuery优点:
1)轻巧方便
2)强大的选择器
3)出色的DOM操作的封装
4)可靠的事件处理机制
5)出色浏览器兼容性
6)不污染顶级变量
7)完善的AJAX
8)开源
jQuery的引入方式
jQuery它是一个库(框架),要想使用它,必须先引入!
jQuery-1.8.3.js:一般用于学习阶段。
实际项目中根据具体情况而定,一般使用压缩版(.min.js)
引入语法:<script type=”text/javascript” src=”js/jquery-1.8.3.js”></script>
window.onload和jquery的ready函数的主要区别:
1.onload事件只能执行一个函数。如果多次绑定onload事件,则后面绑定的会覆盖之前的。因此只能执行一个函数;而ready函数可以调用多次,执行多个函数。
2.onload是当页面所有内容都加载完毕时才调用。如果页面中存在大的图片或者视频,则也必须等到加载完毕才能执行调用的函数;而ready是当页面主要元素加在完毕后执行,大的图片和视频等元素则未必加载完毕,这样用户体验度会更好一些,不用等待过长时间。
例子:jQuery的页面加载
<script type="text/javascript"> //原来的JavaScript的写法,页面加载函数 //一个页面只加载一次,之后的会覆盖掉之前页面加载函数 window.onload=function(){ //提示信息 alert("windowhello"); } window.onload=function(){ //提示信息 alert("windowhello1"); } //现在用JQ的写法,页面加载函数,$表示JQuery($和JQuery两个都可以用) //标准写法 $(document).ready(function(){ alert("hello"); }) jQuery(document).ready(function(){ alert("hellojq"); }) $(document).ready(function(){ alert("hello1"); }) //简易写法 //JQ不会覆盖,是按照顺序一个个加载 $(function(){ alert("hello"); }) </script>
JQ的获取:
//JS写法
window.onload=function(){ var btn1=document.getElementById("btn1"); alert(btn1.value) } //JQ写法 $(function(){ var btn2=$("#btn2"); alert(btn2.val()); var btn2=$("#btn2").val(); alert(btn2); })
在文本框中写入文本两种方法:
html写入文本输入:会按照html读取解析文本
text写入文本输入:会直接写入文本
//添加点击事件 //JS window.onload=function(){ var btn1=document.getElementById("btn1"); btn1.onclick=function(){ //输入innerhtml //获取span document.getElementById("span1").innerHTML="hello" } } JQ $(function(){ $("#btn1").click(function(){ //获取span //html写入文本输入:会按照html读取解析文本 $("#span1").html("<a href='hello.html'>hellojq</a>"); //text写入文本输入:会直接写入文本 $("#span1").text("<a href='hello.html'>hellojq</a>"); }) })
jQuery对象与DOM对象转换
jQuery对象和DOM对象是相互独立的,可以相互转换,但是两个对象的函数不能混淆使用(这点一定要谨记)。
将DOM对象转换为jQuery对象,语法:jQuery(dom对象)或者$(dom对象)
将jQuery对象转换为DOM对象,语法:$jquery对象名[index]或者$jquery对象名.get(index)。
//JS写法 window.onload=function(){ //添加点击事件 document.getElementById("btn1").onclick=function(){ //获取span对象----DOM对象 var dom=document.getElementById("span1"); //把DOM对象转换为jQuery对象 格式:jQuery(dom对象)或者$(dom对象) $(dom).html("<a href='#'>hello JavaScript</a>"); //DOM对象能否使用jQuery函数吗?比如jQuery.html() dom.html("<a href='#'>hello JavaScript</a>"); //得出结论:DOM对象不能直接使用jQuery函数和属性 } } //JQ写法 $(function(){ //添加点击事件 $("#btn2").click(function(){ //获取到span对象----jQuery对象 //方式一:$对象名[index]----DOM对象 $("#span1")[0].innerHTML="hellojq1" //方式二:$对象名.get(index) $("#span1").get(0).innerHTML="hellojq2" //jQuery对象能否直接操作JavaScript的方法和属性吗?比如innerHTML $("#span1").innerHTML="hello jQuery"; //得出结论:jQuery对象不能直接操作JavaScript的方法和属性 }) })
jQuery效果
1.基本显示和隐藏效果
show(speed,fn):显示某元素
参数speed:显示速度,单位毫秒。也可使用固定字符串:slow,normal,fast
参数fn:显示成功之后的回调函数
hide(speed,fn):隐藏某元素
参数同上
toggle(speed,fn):切换显示和隐藏效果,即如果元素隐藏,则使用该方法后则显示,反之则隐藏。
2.滑动效果
slideDown():元素显示,高度逐渐变高,直到设置值。
slideUp():元素隐藏,高度逐渐变小,直到高度为0,元素隐藏。
slideToggle():切换隐藏和显示效果
3.淡入淡出效果
fadeIn():元素显示。从透明一直到完全不透明。
fadeout():元素隐藏。从完全不透明到完全透明再隐藏。
fadeToggle():切换显示隐藏效果
fadeTo(speed,opacity,[fn]):指定透明度
第二个参数opacity取值0-1之间数值;
例子:轮辐广告,图片显示和隐藏
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <!--引入jq框架--> <script type="text/javascript" src="js/jquery-1.8.3.js"></script> <script type="text/javascript"> var timer; //页面加载函数 $(function(){ //图片轮播的定时器 setInterval("changeImg()",3000); setInterval("showImg()",3000); }) //图片轮播具体的实现方法 var num=1; function changeImg(){ if(num>3){ num=1; } //获取图片的标签 document.getElementById("imgId").src="img/"+num+".jpg"; num++; } //弹出图片的方法 function showImg(){ //获取图片的标签 显示用show(),括号中填写的是显示的时间长度 // $("#showImg").show(5000);//注意单位是毫秒 //滑动显示 // $("#showImg").slideDown(5000); //淡入显示:fadeIn() $("#showImg").fadeIn(2000); //清除显示广告的定时器 clearInterval(timer); //隐藏图片的定时器 timer = setInterval("hiddenImg()",2000); } function hiddenImg(){ //获取到图片的标签 //$("#showImg").hide(5000);//注意单位是毫秒 //滑动隐藏:slideUP() $("#showImg").slideUp(2000); //淡出隐藏:fadeOut() //$("#showImg").fadeOut(5000); //清除隐藏广告的定时器 clearInterval(timer); } </script> <title></title> </head> <body> <!--弹出广告图片--> <div> <!--行内先设置图片隐藏--> <img id="showImg" src="img/sh.jpg" width="100%" style="display: none;"/> </div> <!--图片轮播--> <div> <img id="imgId" src="img/1.jpg" width="100%" /> </div> <div> <a href="#">首页</a> <a href="#">手机数码</a> <a href="#">零食</a> </div> </body> </html>
隐藏和显示互换toggle:
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <script type="text/javascript" src="js/jquery-1.8.3.js"></script> <script type="text/javascript"> $(function(){ //给按钮添加点击时间 $("#btn1").click(function(){ //获取图片标签 // // $("#showImg").toggle(2000); // $("#showImg").slideToggle(2000); // // $("#showImg").fadeToggle(2000); }) }) </script> <title></title> </head> <body> <input type="button" name="" id="btn1" value="点一下显示/点一下隐藏" /> <br> <img id="showImg" src="img/1.jpg" width="100%" /> </body> </html>
jQuery基本选择器:
id选择器:$(“#id名称”);
元素选择器:$(“元素名称”);
类选择器:$(“.类名”);
通配符:*
多个选择器共用(并集)
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <script type="text/javascript" src="js/jquery-1.8.3.js"></script> <script type="text/javascript"> $(function(){ //获取按钮的点击事件 $("#btn1").click(function(){ //id选择器:&("#id的名称") $("#one").css("background-color","red") }) $("#btn1").click(function(){ //类选择器:$(".类名") $(".min").css("background-color","blue"); }) $("#btn3").click(function(){ //元素选择器:$("元素名称") $("div").css("background-color","yellow"); }) $("#btn4").click(function(){ //元素选择器:$("*")通配符:整个页面 $("*").css("background-color","pink"); }) $("#btn5").click(function(){ //元素选择器:$("元素名称,元素名称"):求并集 $("#two,.min222").css("background-color","orange"); }) }) </script> <title></title> </head> <body> <input id="btn1" type="button" value="选择为one的元素"/> <input id="btn2" type="button" value="选择样式为min的元素"/> <input id="btn3" type="button" value="选择所有div的元素"/> <input id="btn4" type="button" value="选择所有元素"/> <input id="btn5" type="button" value="选择id为two或者样式为min222的元素"/> <hr /> <div id="one"> <div class="min">1111</div> </div> <div id="two"> <div class="min">2222</div> <div class="min222">3333</div> </div> <div id="three"> <div class="min">4444</div> <div class="min">5555</div> <div class="min">6666</div> </div> <span id="four"> 7777 </span> </body> </html>
层级选择器
ancestor descendant: 在给定的祖先元素下匹配所有的后代元素(儿子、孙子、重孙子)
parent > child : 在给定的父元素下匹配所有的子元素(儿子)
prev + next: 匹配所有紧接在 prev 元素后的 next 元素(紧挨着的,同桌)
prev ~ siblings: 匹配 prev 元素之后的所有 siblings 元素(兄弟)
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <script type="text/javascript" src="js/jquery-1.8.3.js"></script> <script type="text/javascript"> $(function(){ $("#btn1").click(function(){ //ancestor descendant: 在给定的祖先元素下匹配所有的后代元素(儿子、孙子、重孙子) $("body div").css("background-color","red"); }) $("#btn2").click(function(){ //parent > child : 在给定的父元素下匹配所有的子元素(儿子) $("body>div").css("background-color","blue"); }) $("#btn3").click(function(){ //prev + next: 匹配所有紧接在 prev 元素后的 next 元素(紧挨着的,同桌) $("#two+div").css("background-color","yellow"); }) $("#btn4").click(function(){ //prev ~ siblings: 匹配 prev 元素之后的所有 siblings 元素(兄弟) $("#two~div").css("background-color","pink"); }) }) </script> <title></title> </head> <body> <input id="btn1" type="button" value="选择body中所有的后代为div的元素"/> <input id="btn2" type="button" value="选择body中儿子级别的div元素"/> <input id="btn3" type="button" value="选择id为two的下一个元素"/> <input id="btn4" type="button" value="选择id为two的兄弟元素"/> <hr /> <div id="one"> <div class="min">1111</div> </div> <div id="two"> <div class="min">2222</div> <div class="min222">3333</div> </div> <div id="three"> <div class="min">4444</div> <div class="min">5555</div> <div class="min">6666</div> </div> <span id="four"> 7777 <div class="min">8888</div> </span> <div id="five"> <div class="min">9999</div> </div> </body> </html>
基本过滤选择器
基本:
:first
:last
:not
:even
:odd
:eq
:gt
:lt
:header
:animated
内容:
:contains
:empty
:has
:parent
可见性:
:hidden
:visible
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>jQuery基本过滤选择器页面</title> <!--要想使用jQuery,必须先引入--> <script type="text/javascript" src="js/jquery-1.8.3.js" ></script> <script type="text/javascript"> //页面加载函数 $(function(){ //获取按钮的点击事件 $("#btn1").click(function(){ //:first第一个元素 $("body div:first").css("background-color","red"); }) $("#btn2").click(function(){ //:last最后一个元素 $("body div:last").css("background-color","blue"); }) $("#btn3").click(function(){ //:even偶数元素 索引是从0开始的 //父类中的所有的元素同时进行排序,不管是儿子还是孙子 $("body div:even").css("background-color","yellow"); }) $("#btn4").click(function(){ //:odd奇数元素 $("body div:odd").css("background-color","pink"); }) }) </script> </head> <body> <input id="btn1" type="button" value="选择body中第一个div的元素"/> <input id="btn2" type="button" value="选择body中最后一个div元素"/> <input id="btn3" type="button" value="选择body中偶数div元素"/> <input id="btn4" type="button" value="选择body中奇数div元素"/> <hr /> <div id="one"> <div class="min">1111</div> </div> <div id="two"> <div class="min">2222</div> <div class="min222">3333</div> </div> <div id="three"> <div class="min">4444</div> <div class="min">5555</div> <div class="min">6666</div> </div> <span id="four"> 7777 <div class="min">8888</div> </span> <div id="five"> <div class="min">9999</div> </div> </body> </html>
表单选择器
表单:
:input
:text
:password
:radio
:chackbox
:submit
:image
:reset
:button
:file
:hidden
表单对象属性:
:enabled
:disabled
:checked
:selected
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>jQuery表单选择器页面</title> <!--要想使用jQuery,必须先引入--> <script type="text/javascript" src="js/jquery-1.8.3.js" ></script> <script type="text/javascript"> //页面加载函数 $(function(){ //获取按钮的点击事件 $("#btn1").click(function(){ $(":input").css("background-color","red"); }) $("#btn2").click(function(){ $(":text").css("background-color","blue"); }) $("#btn3").click(function(){ var num = $(":radio").size(); alert(num); }) $("#btn4").click(function(){ var num = $(":checkbox").size(); alert(num); }) }) </script> </head> <body> <input id="btn1" type="button" value="选择所有input元素"/> <input id="btn2" type="button" value="选择text文本框元素"/> <input id="btn3" type="button" value="选择单选元素"/> <input id="btn4" type="button" value="选择多选元素"/> <hr /> <form> <input type="text"/><br /> <input type="password"/><br /> <input type="radio" name="sex"/>男<input type="radio" name="sex"/>女<br /> <input type="checkbox"/>篮球<input type="checkbox"/>足球<input type="checkbox"/>排球<br /> <input type="submit"/><br /> <input type="file"/><br /> <input type="image"/><br /> <input type="reset"/><br /> <input type="button" value="普通按钮"/><br /> <input type="hidden"/> </form> </body> </html>
例子:使用jQuery完成表格隔行换色
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>使用jQuery完成表格隔行换色</title> <!--要想使用jQuery,必须先引入--> <script type="text/javascript" src="js/jquery-1.8.3.js" ></script> <style> .even{ background-color: yellow; } .odd{ background-color: pink; } </style> <script type="text/javascript"> //页面加载函数 $(function(){ //用JavaScript的写法获取表格行数对象 //tBodie[0].rows[i]//获取行数 //$("tbody>tr:even").css("background-color","yellow"); //$("tbody>tr:odd").css("background-color","pink"); //addClass():添加写好的样式 $("tbody>tr:even").addClass("even"); $("tbody>tr:odd").addClass("odd");; }) </script> </head> <body> <table border="1" width="600" height="500" cellspacing="0.5" align="center"> <thead> <tr> <th>编号</th> <th>姓名</th> <th>年龄</th> </tr> </thead> <tbody> <tr> <td>1</td> <td>张三</td> <td>22</td> </tr> <tr> <td>2</td> <td>李四</td> <td>20</td> </tr> <tr> <td>3</td> <td>王五</td> <td>45</td> </tr> <tr> <td>4</td> <td>马六</td> <td>71</td> </tr> <tr> <td>5</td> <td>黄七</td> <td>18</td> </tr> <tr> <td>6</td> <td>田九</td> <td>27</td> </tr> </tbody> </table> </body> </html>
class操作
addClass():给指定元素追加class属性样式
removeClass():将指定元素的class属性移除
toggleClass():切换class属性样式,即没有该class属性则添加,有该class属性则移除
属性操作:
prop():
attr(name):取得第一个匹配元素的属性值。通过这个方法可以方便地从第一个匹配元素中获取一个属性的值。如果元素没有相应属性,则返回 undefined 。
attr(properties):将一个“名/值”形式的对象设置为所有匹配元素的属性。
这是一种在所有匹配元素中批量设置很多属性的最佳方式。 注意,如果你要设置对象的class属性,你必须使用'className' 作为属性名。或者你可以直接使用.addClass( class ) 和 .removeClass( class ).
attr(key,value):为所有匹配的元素设置一个属性值。
attr(key,fn):为所有匹配的元素设置一个计算的属性值。
不提供值,而是提供一个函数,由这个函数计算的值作为属性值。
removeAttr(name):从每一个匹配的元素中删除一个属性
prop():操作元素的特性。获取一些第一次分配undefined属性值的标签,如果抛异常,将忽略浏览器生成的任何错误。
removeProp():移除标签的特性。
attr(name)使用方法:
<img src="test.jpg"/> $("img").attr("src"); 结果:test.jpg
attr(properties)的使用方法:
HTML 代码: <img/> jQuery 代码: $("img").attr({ src: "test.jpg", alt: "Test Image" }); 结果: [ <img src= "test.jpg" alt:="Test Image" /> ]
attr(key,value)的使用方法:
<img/> <img/> $("img").attr("src","test.jpg"); 结果:[ <img src= "test.jpg" /> , <img src= "test.jpg" /> ]
attr(key,fn)的使用方法:
<img src="test.jpg"/> $("img").attr("title", function() { return this.src }); 结果:<img src="test.jpg" title="test.jpg" />
removeAttr(name):
<img src="test.jpg"/> $("img").removeAttr("src"); 结果:[ <img /> ]