1.1jQuery 概述
1、为什么使用 jQuery(遇到的问题)
选择器功能弱
DOM操作繁琐之极
浏览器兼容性不好
动画效果弱
2、什么是 jQuery(概念)
jQuery (javaScriptQuery)JavaScript 代码库
官方网站:http://jquery.com/
3、目前 jQuery 有三个大版本:
1.x:兼容ie678,使用最为广泛的,官方只做BUG维护,功能
不再新增。因此一般项目来说,使用1.x版本就可以了,最
终版本:1.12.4 (2016年5月20日)
2.x:不兼容ie678,很少有人使用,官方只做BUG维护,功
能不再新增。如果不考虑兼容低版本的浏览器可以使用2.x,
最终版本:2.2.4 (2016年5月20日)
3.x:不兼容 ie678,只支持最新的浏览器。除非特殊要求,
一般不会使用 3.x 版本的,很多老的 jQuery 插件不支持这
个版本。目前该版本是官方主要更新维护的版本。最新版本:
3.2.1(2017 年 3 月 20 日)
1.2、jQuery 中$的含义
作用 1:$(function)
1.相当于 window.onload=function(){}
2.功能比window.onload更强大
1) window onload一个页面只能写一个,但是可
以写多个$() 而不冲突
2) window onload要等整个页面加载完后再执
行(包括图片、超链接、音视频等),
但是$的执行时间要早
3.完整形式是$(document).ready(…….);
作用 2:$(selector)
选择器
jQuery具有强大的选择器功能
其他作用后续用到再总结
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>隔行变色-CSS</title> <style type="text/css"> .datalist{ border:1px solid #007108; font-family:Arial; border-collapse:collapse; background-color:#d9ffdc; font-size:14px; } .datalist th{ border:1px solid #007108; background-color:#00a40c; color:#FFFFFF; font-weight:bold; padding-top:4px; padding-bottom:4px; padding-left:12px; padding-right:12px; text-align:center; } .datalist td{ border:1px solid #007108; text-align:left; padding-top:4px; padding-bottom:4px; padding-left:10px; padding-right:10px; } </style> <script src="js/jquery-1.9.1.js" type="text/javascript" charset="utf-8"></script> <script type="text/javascript"> //js的方式实现各行变色的效果 /* window.onload=function(){ //获得所有的tr对象 var tr =document.getElementsByTagName("tr"); for(var i =0;i<tr.length;i++){ if(i%2==0){ tr[i].style.backgroundColor="red"; }else { tr[i].style.backgroundColor="green"; } } }*/ //JQ实现的 $(function(){ $("tr:odd").css("background-color","red"); }) /* window.onload=function(){ alert("123"); } window.onload=function(){ alert("456"); }*/ $(function(){ alert("123"); }) jQuery(function(){ alert("456"); }) $(document).ready(function(){ alert("789"); }) </script> </head> <body > <table class="datalist" summary="list of members in EE Studay" id="oTable"> <tr> <th scope="col">Name</th> <th scope="col">Class</th> <th scope="col">Birthday</th> <th scope="col">Constellation</th> <th scope="col">Mobile</th> </tr> <tr> <!-- 奇数行 --> <td>isaac</td> <td>W13</td> <td>Jun 24th</td> <td>Cancer</td> <td>1118159</td> </tr> <tr class="altrow"> <!-- 偶数行 --> <td>fresheggs</td> <td>W610</td> <td>Nov 5th</td> <td>Scorpio</td> <td>1038818</td> </tr> <tr> <!-- 奇数行 --> <td>girlwing</td> <td>W210</td> <td>Sep 16th</td> <td>Virgo</td> <td>1307994</td> </tr> <tr class="altrow"> <!-- 偶数行 --> <td>tastestory</td> <td>W15</td> <td>Nov 29th</td> <td>Sagittarius</td> <td>1095245</td> </tr> <tr> <!-- 奇数行 --> <td>lovehate</td> <td>W47</td> <td>Sep 5th</td> <td>Virgo</td> <td>6098017</td> </tr> <tr class="altrow"> <!-- 偶数行 --> <td>slepox</td> <td>W19</td> <td>Nov 18th</td> <td>Scorpio</td> <td>0658635</td> </tr> <tr> <!-- 奇数行 --> <td>smartlau</td> <td>W19</td> <td>Dec 30th</td> <td>Capricorn</td> <td>0006621</td> </tr> <tr class="altrow"> <!-- 偶数行 --> <td>shenhuanyan</td> <td>W25</td> <td>Jan 31th</td> <td>Aquarius</td> <td>0621827</td> </tr> <tr> <!-- 奇数行 --> <td>tuonene</td> <td>W210</td> <td>Nov 26th</td> <td>Sagittarius</td> <td>0091704</td> </tr> <tr class="altrow"> <!-- 偶数行 --> <td>ArthurRivers</td> <td>W91</td> <td>Feb 26th</td> <td>Pisces</td> <td>0468357</td> </tr> <tr> <!-- 奇数行 --> <td>reconzansp</td> <td>W09</td> <td>Oct 13th</td> <td>Libra</td> <td>3643041</td> </tr> <tr class="altrow"> <!-- 偶数行 --> <td>linear</td> <td>W86</td> <td>Aug 18th</td> <td>Leo</td> <td>6398341</td> </tr> <tr> <!-- 奇数行 --> <td>laopiao</td> <td>W41</td> <td>May 17th</td> <td>Taurus</td> <td>1254004</td> </tr> <tr class="altrow"> <!-- 偶数行 --> <td>dovecho</td> <td>W19</td> <td>Dec 9th</td> <td>Sagittarius</td> <td>1892013</td> </tr> <tr> <!-- 奇数行 --> <td>shanghen</td> <td>W42</td> <td>May 24th</td> <td>Gemini</td> <td>1544254</td> </tr> <tr class="altrow"> <!-- 偶数行 --> <td>venessawj</td> <td>W45</td> <td>Apr 1st</td> <td>Aries</td> <td>1523753</td> </tr> <tr> <!-- 奇数行 --> <td>lightyear</td> <td>W311</td> <td>Mar 23th</td> <td>Aries</td> <td>1002908</td> </tr> </table> </body> </html>
选择器学习 A
对象之间的转换
DOM对象:直接使用JavaScript获取的节点对象
- className innerHTML value
- jQuery对象:使用jQuery选择器获取的节点对象,它能够使用jQuery中的方法
- addClass() html() val()
- DOM对象和jQuery对象分别拥有一套独立的方法,不能混用
- DOM对象转换成jQuery对象
- $(DOM对象)
- jQuery对象转换成DOM对象
- jQuery对象[index]
- jQuery对象.get(index)
基本选择器
- 标签选择器 $(“a”)
- ID选择器 $(“#id”) $(“p#id”)
- 类选择器 $(“.class”) $(“h2.class”)
- 通配选择器 $("*")
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title></title> <script src="js/jquery-1.9.1.js" type="text/javascript" charset="utf-8"></script> <script type="text/javascript"> $(function(){ //js获得元素对象 var zh =document.getElementById("zh"); //Element // JS----JQ对象 var zhh=$(zh); // alert(zh); //JQ获得元素的对象 *ID选择器 var zh1=$("#zh"); //Object---[Element1,Element2,Element3] //JQ----JS对象 // alert(zh1[0]); //*元素选择器 var inp =$("input"); // alert(inp.length); //*类选择器 var inp2=$(".inp"); // alert(inp2[0].value); // jq获得内容操作 // alert(inp2.eq(0).val()); //通用选择器 $("*").css("background-color","greenyellow"); //分组选择器 }) </script> </head> <body> <p> 账号: <input type="text" name="" id="zh" value="123" /> </p> <p> 密码: <input type="password" name="" id="pwd" value="12366" class="inp"/> </p> <p> 确认密码: <input type="password" name="" id="pwd2" value="123" class="inp"/> </p> </body> </html>
选择器学习 B
- 并集选择器$("elem1,elem2,elem3")
- 后代选择器$(ul li) (一个ul里的所有li)
- 父子选择器 $(ul>li) (一个ul里的直系后代如下图)
- 后面第一个兄弟元素 prev + next (后面不能有其他标签,一个<br>都不行)
- 后面所有的兄弟元素 prev ~ next
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title></title> <style> div{ height: 200px; border: 3px solid red; } </style> <script src="js/jquery-1.9.1.js" type="text/javascript" charset="utf-8"></script> <script type="text/javascript"> $(function(){ // div下面包含的所有span标签 // $("div span").css("background-color","red"); // div下面的直系子元素 // $("div>span").css("background-color","green"); // 紧接着的span标签 // $("#sp1 + span").css("background-color","red"); //获得指定元素后面同级的span标签 $("#sp1~span").css("background-color","aqua"); }) </script> </head> <body> <div> <span id="sp1">北京尚学堂</span> <span>北京尚学堂</span><br /> <span>北京尚学堂</span><br /> <p> <span>北京尚学堂</span><br /> <span>北京尚学堂</span><br /> <span>北京尚学堂</span><br /> </p> </div> </body> </html>
选择器学习 C
//只是第一行变颜色(只有第一行,就一次,后面再出现ul加上li也不管)
$("ul li:first").css("background-color","red");
$("ul li").first().css("background-color","red");
//最后一行变颜色
$("ul li:last").css("background-color","green");
$("ul li").last().css("background-color","green");
//获得索引是奇数对象 索引从0开始
$("ul li:odd").css("background-color","green");
//获得索引是偶数对象 索引从0开始
$("ul li:even").css("background-color","green");
//获得索引下标位3的对象
$("ul li:eq(3)").css("background-color","green");
//获得大于指定索引下标的对象
$("ul li:gt(3)").css("background-color","green");
//获得小于指定索引下标的对象
$("ul li:lt(3)").css("background-color","green");
/**************子选择器*************************/
$("ul li:nth-child(1)").css("background-color","green");
$("ul li:first-child").css("background-color","darkred");
$("ul li:last-child").css("background-color","darkred");
$("ul li:only-child").css("background-color","#00A40C");
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title></title> <style> div{ height: 200px; border: 3px solid red; } </style> <script src="js/jquery-1.9.1.js" type="text/javascript" charset="utf-8"></script> <script type="text/javascript"> $(function(){ //只是第一行变颜色 // √ $("ul li:first").css("background-color","red"); // $("ul li").first().css("background-color","red"); //最后一行变颜色 // √ $("ul li:last").css("background-color","green"); // $("ul li").last().css("background-color","green"); //获得索引是奇数对象 索引从0开始 // √ $("ul li:odd").css("background-color","green"); //获得索引是偶数对象 索引从0开始 // $("ul li:even").css("background-color","green"); //获得索引下标位3的对象 // √ $("ul li:eq(3)").css("background-color","green"); //获得大于指定索引下标的对象 // $("ul li:gt(3)").css("background-color","green"); //获得小于指定索引下标的对象 // $("ul li:lt(3)").css("background-color","green"); /**********子选择器*************************/ // √ $("ul li:nth-child(1)").css("background-color","green"); // $("ul li:first-child").css("background-color","darkred"); // $("ul li:last-child").css("background-color","darkred"); $("ul li:only-child").css("background-color","#00A40C"); }) </script> </head> <body> <div> <ul> <li>List Item1</li> <li>List Item2</li> <li>List Item3</li> <li>List Item4</li> </ul> <ul> <li>List Item1</li> </ul> </div> </body> </html>
选择器学习 D
//type属性等于text
$("input[type=text]").css("background-color","#00A40C");
// name属性用z开头的
$("input[name^=z]").css("background-color","#FF0000");
// name属性同d结尾的
$("input[name$=d]").css("background-color","green");
//name属性中包含p 的元素
$("input[name*=p]").css("background-color","green");
//复合属性选择器,需要同时满足多个条件时使用
$("input[type=text][name^=z]").css("background-color","deeppink");
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title></title> <script src="js/jquery-1.9.1.js" type="text/javascript" charset="utf-8"></script> <script type="text/javascript"> $(function(){ //type属性等于text // $("input[type=text]").css("background-color","#00A40C"); // name属性用z开头的 // $("input[name^=z]").css("background-color","#FF0000"); // name属性同d结尾的 // $("input[name$=d]").css("background-color","green"); //name属性中包含p 的元素 // $("input[name*=p]").css("background-color","green"); //复合属性选择器,需要同时满足多个条件时使用 $("input[type=text][name^=z]").css("background-color","deeppink"); }) </script> </head> <body> <center> <h3>注册页面</h3> <hr /> <form action="" method="get"> <table border="1px"> <tr height="35px"> <td width="150px">用户名:</td> <td width="400px"> <input type="text" name="zuname" id="uname" value="" alt="用户名" onblur="checkName()"/> <span id="uname_span">*用户名必须是3-5位的汉字</span> </td> </tr> <tr height="35px"> <td>密码:</td> <td> <input type="password" name="zpwd" id="pwd" value="" alt="密码" onblur="checkPwd()"/> <span id="pwd_span"></span> </td> </tr> <tr height="35px"> <td>手机号:</td> <td> <input type="text" name="zphone" id="phone" value="" alt="手机号" /> <span id="phone_span"></span> </td> </tr> <tr height="35px"> <td>邮箱:</td> <td> <input type="text" name="email" id="email" value="" alt="邮箱" onblur="checkEmail()" /> <span id="email_span"></span> </td> </tr> <tr height="35px"> <td>颜色:</td> <td> <input type="color" name="scolor" id="" /> </td> </tr> <tr height="35px"> <td>爱好:</td> <td> <input type="checkbox" name="fav" id="" value="1" />唱歌 <input type="checkbox" name="fav" id="" value="2" />睡觉 <input type="checkbox" name="fav" id="" value="3" />LOL<br /> <input type="checkbox" name="fav" id="" value="4" />旅游 <input type="checkbox" name="fav" id="" value="5" />高尔夫 <input type="checkbox" name="fav" id="" value="6" />篮球 </td> </tr> <tr height="35px"> <td>籍贯:</td> <td> <select name="adress" id="sel"> <option value="0">--请选择--</option> <option value="1">河南</option> <option value="2">湖南</option> <option value="3">海南</option> <option value="4">云南</option> </select> <span id="sel_span"></span> </td> </tr> <tr height="35px"> <td>验证码</td> <td> <input type="number" name="" id="yzm" value=""/> <span id="yzm_span"></span> <span id="yzm2_span"></span> </td> </tr> <tr height="35px"> <td>个人介绍:</td> <td> <textarea name="intro" rows="8" cols="30"></textarea> </td> </tr> <tr height="35px"> <td colspan="2" align="center"> <input type="checkbox" name="" id="check" value="" onclick="checkAgree()">是否同一本公司协议 </td> </tr> <tr height="35px"> <td colspan="2" align="center"> <input type="submit" id="sub" value="注册" disabled="true"/> </td> </tr> </table> </form> </center> </body> </html>
选择器学习 E
// √ 获得form表单中的所有的表单项
var inp= $(":input")
//获得标签名称是input 的所有的标签对象
var inp2=$("input");
alert(inp.length+"----"+inp2.length);
$("input[type=text]")
// √ input标签 type属性等于text所对应的对象
$(":text").css("background-color","green");
$(":password").css("background-color","red");
/************表单属性选择器*****************/
//获得input标签中含有disabled属性的对象
var but= $("input:disabled");
alert(but.val());
//√ 获得含有checked属性的对象
var ch =$("input:checked");
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title></title> <script src="js/jquery-1.9.1.js" type="text/javascript" charset="utf-8"></script> <script type="text/javascript"> $(function(){ // √ 获得form表单中的所有的表单项 var inp= $(":input") //获得标签名称是input 的所有的标签对象 var inp2=$("input"); // alert(inp.length+"----"+inp2.length); // $("input[type=text]") // √ input标签 type属性等于text所对应的对象 $(":text").css("background-color","green"); $(":password").css("background-color","red"); /********表单属性选择器*****************/ //获得input标签中含有disabled属性的对象 var but= $("input:disabled"); alert(but.val()); //√ 获得含有checked属性的对象 var ch =$("input:checked"); }) </script> </head> <body> <center> <h3>注册页面</h3> <hr /> <form action="" method="get" > <table border="1px"> <tr height="35px"> <td width="150px">用户名:</td> <td width="400px"> <input type="text" name="zuname" id="uname" value="" alt="用户名" onblur="checkName()"/> <span id="uname_span">*用户名必须是3-5位的汉字</span> </td> </tr> <tr height="35px"> <td>密码:</td> <td> <input type="password" name="zpwd" id="pwd" value="" alt="密码" onblur="checkPwd()"/> <span id="pwd_span"></span> </td> </tr> <tr height="35px"> <td>手机号:</td> <td> <input type="text" name="zphone" id="phone" value="" alt="手机号" /> <span id="phone_span"></span> </td> </tr> <tr height="35px"> <td>邮箱:</td> <td> <input type="text" name="email" id="email" value="" alt="邮箱" onblur="checkEmail()" /> <span id="email_span"></span> </td> </tr> <tr height="35px"> <td>颜色:</td> <td> <input type="color" name="scolor" id="" /> </td> </tr> <tr height="35px"> <td>爱好:</td> <td> <input type="checkbox" name="fav" id="" value="1" />唱歌 <input type="checkbox" name="fav" id="" value="2" checked="checked"/>睡觉 <input type="checkbox" name="fav" id="" value="3" />LOL<br /> <input type="checkbox" name="fav" id="" value="4" />旅游 <input type="checkbox" name="fav" id="" value="5" />高尔夫 <input type="checkbox" name="fav" id="" value="6" />篮球 </td> </tr> <tr height="35px"> <td>籍贯:</td> <td> <select name="adress" id="sel" onchange="checkAdress()"> <option value="0">--请选择--</option> <option value="1">河南</option> <option value="2">湖南</option> <option value="3">海南</option> <option value="4">云南</option> </select> <span id="sel_span"></span> </td> </tr> <tr height="35px"> <td>验证码</td> <td> <input type="number" name="" id="yzm" value="" onblur="checkYZM()"/> <span id="yzm_span"></span> <span id="yzm2_span"></span> </td> </tr> <tr height="35px"> <td>个人介绍:</td> <td> <textarea name="intro" rows="8" cols="30"></textarea> </td> </tr> <tr height="35px"> <td colspan="2" align="center"> <input type="checkbox" name="" id="check" value="" onclick="checkAgree()">是否同一本公司协议 </td> </tr> <tr height="35px"> <td colspan="2" align="center"> <input type="submit" id="sub" value="注册" disabled="true"/> </td> </tr> </table> </form> </center> </body> </html>
操作页面的样式 A
//获得div对象
var div =$("#div1");
//获得css样式
var wid=div.css("width");
var hi=div.css("height");
console.log(wid+"----"+hi);
//操作元素对象的css
div.css("width","400px");
div.css("height","500px");
div.css("background-color","red");
div.css("backgroundColor","red");
//以上内容的综合---{key1:value1,key2:value2}---json
数据格式
div.css({'width':'300px','height':'300px','backgrou
nd-color':'red'});
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title></title> <style> #div1{ 200px; height: 200px; border: 2px solid green; } </style> <script src="js/jquery-1.9.1.js" type="text/javascript" charset="utf-8"></script> <script type="text/javascript"> $(function(){ $("#bu1").click(function(){ //获得div对象 var div =$("#div1"); //获得css样式 var wid=div.css("width"); var hi=div.css("height"); console.log(wid+"----"+hi); //操作元素对象的css // div.css("width","400px"); // div.css("height","500px"); // div.css("background-color","red"); // div.css("backgroundColor","red"); //以上内容的综合---{key1:value1,key2:value2}---json数据格式 div.css({'width':'300px','height':'300px','background-color':'red'}); }) }) </script> </head> <body> <input type="button" value="样式的添加" id="bu1"> <hr /> <div id="div1"></div> </body> </html>
操作页面的样式 B
如果当页面中的css样式比较多的时候可以通过添加类的方
式添加样式,方法如下:两种
$("#bu1").click(function(){
//获得div对象 --通过添加类的方式添加css样式
//$("#div1").attr("class","div");
$("#div1").addClass("div");
})
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title></title> <style> #div1{ 300px; height: 300px; border: 3px solid red; } .div{ 500px; height: 500px; background-image: url(img/1.jpg); background-repeat: no-repeat; background-position: center; background-color: greenyellow; } </style> <script src="js/jquery-1.9.1.js" type="text/javascript" charset="utf-8"></script> <script type="text/javascript"> $(function(){ $("#bu1").click(function(){ //获得div对象 --通过添加类的方式添加css样式 //$("#div1").attr("class","div"); $("#div1").addClass("div"); }) }) </script> </head> <body> <input type="button" name="" id="bu1" value="元素样式操作" /> <hr /> <div id="div1"> </div> </body> </html>
操作页面元素的属性 A
$("#bu1").click(function(){
//获得元素对象
var tex=$("#inp1");
//获得元素对象的属性
var te=tex.attr("type");
var cl =tex.attr("class");
//获得元素固有的属性值
var val =tex.attr("value");
console.log(te+"------"+cl+"-----"+val);
//获得文本框实时输入的值
var val2=tex.val();
// alert(val2);
}
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title></title> <script src="js/jquery-1.9.1.js" type="text/javascript" charset="utf-8"></script> <script type="text/javascript"> $(function(){ $("#bu1").click(function(){ //获得元素对象 var tex=$("#inp1"); //获得元素对象的属性 var te=tex.attr("type"); var cl =tex.attr("class"); //获得元素固有的属性值 var val =tex.attr("value"); console.log(te+"------"+cl+"-----"+val); //获得文本框实时输入的值 var val2=tex.val(); // alert(val2); /*********操作元素对象的属性******************/ /*tex.attr("type","button"); tex.attr("value","测试按钮");*/ //支持json数据格式 tex.attr({"type":"button","value":"测试按钮"}); // var ch= $("#fav").attr("checked"); var flag=$("#fav").prop("checked",true); }) }) </script> </head> <body> <input type="button" name="" id="bu1" value="元素属性的获得" /> <hr /> <form> 账号:<input type="text" class="inp" id="inp1" value="sxt" /> <br /> 密码:<input type="password" class="pwd" id="pwd1" value="sxt" /><br /> 爱好: 抽烟:<input type="checkbox" /> 喝酒:<input type="checkbox" /> 烫头:<input type="checkbox" id="fav" /> </form> </body> </html>
操作页面元素的属性 B
tex.attr("type","button");
tex.attr("value","测试按钮");
//支持json数据格式
tex.attr({"type":"button","value":"测试按钮"});
var ch= $("#fav").attr("checked");
var flag=$("#fav").prop("checked",true);
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title></title> <script src="js/jquery-1.9.1.js" type="text/javascript" charset="utf-8"></script> <script type="text/javascript"> $(function(){ $("#bu1").click(function(){ //获得元素对象 var tex=$("#inp1"); //获得元素对象的属性 var te=tex.attr("type"); var cl =tex.attr("class"); //获得元素固有的属性值 var val =tex.attr("value"); console.log(te+"------"+cl+"-----"+val); //获得文本框实时输入的值 var val2=tex.val(); // alert(val2); /*********操作元素对象的属性******************/ /*tex.attr("type","button"); tex.attr("value","测试按钮");*/ //支持json数据格式 tex.attr({"type":"button","value":"测试按钮"}); // var ch= $("#fav").attr("checked"); var flag=$("#fav").prop("checked",true); }) }) </script> </head> <body> <input type="button" name="" id="bu1" value="元素属性的获得" /> <hr /> <form> 账号:<input type="text" class="inp" id="inp1" value="sxt" /> <br /> 密码:<input type="password" class="pwd" id="pwd1" value="sxt" /><br /> 爱好: 抽烟:<input type="checkbox" /> 喝酒:<input type="checkbox" /> 烫头:<input type="checkbox" id="fav" /> </form> </body> </html>
操作页面的文本和值 A
//获得div元素对象
var div =$("#div1");
//获得元素的内容 含有HTML的标签的
var ht=div.html();
console.log(ht);
//只是获得文本内容, 不含有HTML标签
var te =div.text();
console.log(te);
//获得文本框的值
var val=$("#inp1").val();
console.log(val);
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title></title> <script src="js/jquery-1.9.1.js" type="text/javascript" charset="utf-8"></script> <script type="text/javascript"> $(function(){ $("#bu1").click(function(){ //获得div元素对象 var div =$("#div1"); //获得元素的内容 含有HTML的标签的 var ht=div.html(); console.log(ht); //只是获得文本内容, 不含有HTML标签 var te =div.text(); console.log(te); //获得文本框的值 var val=$("#inp1").val(); console.log(val); /********操作元素对象的内容和值****************/ //div.html("<b>我们都爱笑</b>"); div.text(div.text()+"<b>我们都爱笑</b>"); $("#inp1").val("sxt"); }) }) </script> </head> <body> <input type="button" name="" id="bu1" value="操作元素的内容" /> <hr /> <div id="div1"> <span>北京尚学堂</span> </div> <input type="text" name="inp1" id="inp1" value="" /> </body> </html>
操作页面的文本和值 B
可以识别里面的html代码
div.html("<b>我们都爱笑</b>");
识别不了里面的HTML代码
div.text(div.text()+"<b>我们都爱笑</b>");
获得文本的值
$("#inp1").val("sxt");
注意特殊情况:
Select 、textarea 两个标签获得值得时候需要用val()
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title></title> <script src="js/jquery-1.9.1.js" type="text/javascript" charset="utf-8"></script> <script type="text/javascript"> $(function(){ $("#bu1").click(function(){ //获得div元素对象 var div =$("#div1"); //获得元素的内容 含有HTML的标签的 var ht=div.html(); console.log(ht); //只是获得文本内容, 不含有HTML标签 var te =div.text(); console.log(te); //获得文本框的值 var val=$("#inp1").val(); console.log(val); /********操作元素对象的内容和值****************/ //div.html("<b>我们都爱笑</b>"); div.text(div.text()+"<b>我们都爱笑</b>"); $("#inp1").val("sxt"); }) }) </script> </head> <body> <input type="button" name="" id="bu1" value="操作元素的内容" /> <hr /> <div id="div1"> <span>北京尚学堂</span> </div> <input type="text" name="inp1" id="inp1" value="" /> </body> </html>
操作页面的元素 A
//创建了新的元素
var p=$("<p> <b>List Item0</b> </p>")
//增加子元素 ---现有元素之后
$("#div1").append(p);
//把p元素增加到 div里面
p.appendTo("#div1");
//添加内部的子元素 ---现有元素之前
$("#div1").prepend(p);
p.prependTo("#div1");
//平级的添加元素---现有元素之前
p.insertBefore("#div1");
$("#div1").before(p);
//平级的添加元素---现有元素之后
p.insertAfter("#div1");
$("#div1").after(p);
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title></title> <style> #div1{ height: 300px; border: 3px solid red; } p{ border: 2px solid green; } </style> <script src="js/jquery-1.9.1.js" type="text/javascript" charset="utf-8"></script> <script type="text/javascript"> $(function(){ //创建了新的元素 var p=$("<p> <b>List Item0</b> </p>") //增加子元素 ---现有元素之后 // $("#div1").append(p); //把p元素增加到 div里面 // p.appendTo("#div1"); //添加内部的子元素 ---现有元素之前 // $("#div1").prepend(p); // p.prependTo("#div1"); //平级的添加元素---现有元素之前 // p.insertBefore("#div1"); // $("#div1").before(p); //平级的添加元素---现有元素之后 // p.insertAfter("#div1"); // $("#div1").after(p); /***********替换指定的节点******************/ // $("div p:nth-child(1)").replaceWith(p); // p.replaceAll("div p:nth-child(5)"); /**********删除指定的节点元素***************************/ //删除指定的元素 // $("#div1").remove(); // $("div p:nth-child(3)").remove(); //清空内容 // $("#div1").empty(); $("div p:nth-child(2)").empty(); }) </script> </head> <body> <div id="div1"> <p>List Item1</p> <p>List Item2</p> <p>List Item3</p> <p>List Item4</p> <p>List Item5</p> </div> </body> </html>
操作页面的元素 B
/***********替换指定的节点******************/
$("div p:nth-child(1)").replaceWith(p);
p.replaceAll("div p:nth-child(5)");
/**********删除指定的节点元素******************/
//删除指定的元素
$("#div1").remove();
$("div p:nth-child(3)").remove();
//清空内容
$("#div1").empty();
$("div p:nth-child(2)").empty();
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title></title> <script src="js/jquery-1.9.1.js" type="text/javascript" charset="utf-8"></script> <script type="text/javascript"> function insertNode(){ //创建节点对象 var p =$('<p>'+ '照片:<input type="file" name="" id="" value="" />'+ '<input type="button" name="" id="" value="删除" onclick="removeNode(this)" />'+ '</p>'); $("#last").before(p); } function removeNode(obj){ $(obj).parent().remove(); } </script> </head> <body> <form> <p> 用户名:<input type="text" name="" id="" value="" /> </p> <p> 照片:<input type="file" name="" id="" value="" /> <input type="button" name="" id="" value="添加" onclick="insertNode()" /> </p> <p id="last"> <input type="button" name="" id="" value="提交" /> <input type="button" name="" id="" value="清空" /> </p> </form> </body> </html>
事件处理 A
/*页面加载完执行的操作*/
$(function(){})
jQuery(function(){})
$(document).ready(function(){})
$(function(){
/*******事件的基础绑定*************/
$("#bu1").click(function(){
alert("单击事件");
})
$("#bu1").dblclick(function(){
alert("双击事件");
})
/*******bind事件绑定**************/
$("#bu2").bind('click',function(){
alert("单击事件绑定");
})
//内容还支持json数据格式
$("#bu2").bind({
'click':function(){},
'dblclick':function(){},
'blur':function(){}
})
/*********one一次事件绑定*************/
$("#bu3").one('click',function(){
alert("一次事件绑定");
})
事件处理 B
/*********trigger事件操作****************/
trigger事件就是可以调用其他事件的来执行。调用的作用。
$("#bu4").click(function(){
$("#bu1").trigger('dblclick');
$("#bu3").trigger('click');
})
/********事件的解绑*********************/
$("#bu5").click(function(){
//事件的解绑
//解绑指定对象上的所有事件
$("#bu1").unbind();
//解绑指定的事件
$("#bu1").unbind("dblclick");
})
$(".bu6").click(function(){
alert("单击事件的绑定");
})
$(".bu6").live('click',function(){
alert("单击事件绑定");
})
$("body").append('<input type="button" name=""
id="" class="bu6" value="事件操作 2" />');
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title></title> <script src="http://apps.bdimg.com/libs/jquery/1.7.0/jquery.js" type="text/javascript" charset="utf-8"></script> <script type="text/javascript"> /*页面加载完执行的操作*/ // $(function(){}) // // jQuery(function(){}) // // $(document).ready(function(){}) $(function(){ /*******事件的基础邦迪*************/ /* $("#bu1").click(function(){ alert("单击事件"); })*/ $("#bu1").dblclick(function(){ alert("双击事件"); }) /*******bind事件绑定**************/ /* $("#bu2").bind('click',function(){ alert("单击事件绑定"); })*/ //内容还支持json数据格式 $("#bu2").bind({ 'click':function(){}, 'dblclick':function(){}, 'blur':function(){} }) /*********one一次事件绑定*************/ $("#bu3").one('click',function(){ alert("一次事件绑定"); }) /*********trigger事件操作****************/ $("#bu4").click(function(){ $("#bu1").trigger('dblclick'); $("#bu3").trigger('click'); }) /********事件的解绑***********/ $("#bu5").click(function(){ //事件的解绑 //解绑指定对象上的所有事件 // $("#bu1").unbind(); //解绑指定的事件 $("#bu1").unbind("dblclick"); }) /*$(".bu6").click(function(){ alert("单击事件的绑定"); })*/ $(".bu6").live('click',function(){ alert("单击事件绑定"); }) $("body").append('<input type="button" name="" id="" class="bu6" value="事件操作2" />'); }) </script> </head> <body> <input type="button" name="bu1" id="bu1" value="事件绑定" /> <input type="button" name="bu2" id="bu2" value="bind事件绑定" /> <input type="button" name="bu3" id="bu3" value="one事件绑定" /> <input type="button" name="bu4" id="bu4" value="tigger事件学习" /> <input type="button" name="bu5" id="bu5" value="事件解绑" /> <input type="button" name="" id="" class="bu6" value="事件操作" /> </body> </html>
百度静态资源库
动画功能 A
//获得div对象
var div1 =$("#div1");
//3s隐藏动画
div1.hide(3000);
div1.show(3000);
//隐藏的显示 ---显示的隐藏
//$("div").toggle(3000);
//滑动上
div1.slideUp(3000);
//滑动下
div1.slideDown(3000);
//滑动上--滑动下 滑动下---滑动上
$("div").slideToggle(3000);
//淡出
div1.fadeOut(3000);
//淡入
div1.fadeIn(3000);
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title></title> <style> #div1{ height: 300px; background-color: green; } #div2{ height: 300px; background-color: yellow; } </style> <script src="js/jquery-1.9.1.js" type="text/javascript" charset="utf-8"></script> <script type="text/javascript"> $(function(){ $("#bu1").click(function(){ //获得div对象 var div1 =$("#div1"); //3s隐藏动画 // div1.hide(3000); // div1.show(3000); //隐藏的显示 ---显示的隐藏 //$("div").toggle(3000); //滑动上 // div1.slideUp(3000); //滑动下 // div1.slideDown(3000); //滑动上--滑动下 滑动下---滑动上 // $("div").slideToggle(3000); //淡出 div1.fadeOut(3000); //淡入 div1.fadeIn(3000); }) }) </script> </head> <body> <input type="button" id="bu1" value='动画触发'> <hr /> <div id="div1"></div> <div id="div2"></div> </body> </html>
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title></title> <style> #div1{ height: 300px; background-color: green; } #div2{ height: 300px; background-color: yellow; } </style> <script src="js/jquery-1.9.1.js" type="text/javascript" charset="utf-8"></script> <script type="text/javascript"> $(function(){ $("#bu1").click(function(){ //获得div对象 var div1 =$("#div1"); //3s隐藏动画 // div1.hide(3000); // div1.show(3000); //隐藏的显示 ---显示的隐藏 //$("div").toggle(3000); //滑动上 // div1.slideUp(3000); //滑动下 // div1.slideDown(3000); //滑动上--滑动下 滑动下---滑动上 // $("div").slideToggle(3000); //淡出 div1.fadeOut(3000); //淡入 div1.fadeIn(3000); }) }) </script> </head> <body> <input type="button" id="bu1" value='动画触发'> <hr /> <div id="div1"></div> <div id="div2"></div> </body> </html>
Jquery 的封装原理
<h1>jQuery中的封装原理</h1>
<h3>匿名函数的自调用</h3>
<h3>闭包原理</h3>
闭包的优点:
1、可以减少全局变量的对象,防止全局变量过去庞大,
导致难以维护
2、防止可修改变量,因为内部的变量外部是无法访问的,
并且也不可修改的。安全
3、读取函数内部的变量,另一个就是让这些变量的值始
终保持在内存中。
参考网址:
https://www.cnblogs.com/sq45711478/p/5990347.html
购物车案例如下:
/** * * Created by Administrator on 2019/4/20 0020. */ $(function () { $("#chks").click(function () { var flag=$(this).prop("checked"); //boolean类型 /* if(flag){ $("input[name='chk']").prop("checked",true); }else{ $("input[name='chk']").prop("checked",false); }*/ $("input[name='chk']").prop("checked",flag); }) //判断我们是否全选 $("input[name=chk]").click(function () { var flag=true; var chk= $("input[name=chk]"); chk.each( function () { if(!$(this).prop("checked")){ flag=false; return ; } }) $("#chks").prop("checked",flag); }) //反选 $("#fx").click(function () { var chx=$("input[type='checkbox']"); chx.each(function () { var flag=$(this).prop("checked"); $(this).prop("checked",!flag); }) }) /*新增行*/ $("#addRow").click(function () { var tab=$("#ta"); tab.append('<tr id="">'+ '<td><input type="checkbox" name="chk" id="" value="2"/></td>'+ '<td>《Java编程之道》</td>'+ '<td>wollo</td>'+ '<td>10</td>'+ ' <td>'+ '<input type="button" name="aa" id="" value="修改数量" />'+ ' <input type="button" name="" id="" value="删除" />'+ ' </td>'+ ' </tr>'); }) /*删除行*/ $("#delRow").click(function () { var del=$("input[ name=chk]:checked"); if(del.length==0){ alert("请选择至少一行!!!"); }else{ del.parent().parent().remove(); } }) /*****************************************复制行********************/ $("#copyRow").click(function () { var copy=$("input[name=chk]:checked"); if(copy.length==0){ alert("至少选择一行"); }else{ var tr=copy.parent().parent().clone(); $("#ta").append(tr); } }) }) // function change(th) { var par = $(th).parent().parent(); par.children().eq(3).html("<input type='text' siz='3px'onblur='bul(this)'/>") } function bul(th) { var par=$(th).parent().parent(); par.children().eq(3).html(th.value); } //删除操作 function del(th) { var par=$(th).parent().parent(); par.remove(); }
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <style type="text/css"> tr{ height: 40px; } </style> <script src="js/jquery-1.9.1.js" type="text/javascript" charset="UTF-8"></script> <script src="js/gwc.js" type="text/javascript" charset="UTF-8"></script> </head> <body> <h3>jQuery操作表格</h3> <hr> <input type="button" id="fx" value="反选"> <input type="button" id="addRow" value="新增一行"> <input type="button" id="delRow" value="删除一行"> <input type="button" id="copyRow" value="复制一行"> <table border="1px" cellpadding="10px" cellspacing="0" id="ta"> <tr> <td width="50px"><input type="checkbox" name="chks" id="chks" value="1" /></td> <td width="200px">书名</td> <td width="200px">作者</td> <td width="200px">数量</td> <td width="200px">操作</td> </tr> <tr> <td><input type="checkbox" name="chk" value="2"/></td> <td>《Java编程之道》</td> <td>wollo</td> <td>10</td> <td> <input type="button" name="aa" value="修改数量" onclick="change(this)" /> <input type="button" name="" value="删除" onclick="del(this)" /> </td> </tr> <tr> <td><input type="checkbox" name="chk" value="3" /></td> <td>《Python和我的故事》</td> <td>赵老师</td> <td>10</td> <td> <input type="button" name="" value="修改数量" onclick="change(this)"/> <input type="button" name="" value="删除" onclick="del(this)"/> </td> </tr> <tr> <td><input type="checkbox" name="chk" id="" value="4" /></td> <td>《web开发详解》</td> <td>张老师</td> <td>30</td> <td> <input type="button" name="aa" value="修改数量" onclick="change(this)" /> <input type="button" name="" value="删除" onclick="del(this)" /> </td> </tr> </table> </body> </html>