jQuery
1.jQuery :JavaScript 和查询(Query),辅助 JavaScript 开发的 js 类库。
2.jQuery 核心函数 :$ 是 jQuery 的核心函数, 能完成 jQuery 的很多功能。 $()就是调用$这个函数
1). 传入参数为 [ 函数 ] 时:
表示页面加载完成之后。 相当于 window.onload = function(){}
代码:
1 $(function () { 2 alert("传入参数为[函数]时:在文档加载完成后执行这个函数"); 3 });
2).传入参数为 [ HTML 字符串 ] 时:
会对我们创建这个 html 标签对象
代码:
1 $(function () { 2 $("<dvi>\n" + 3 " <span>111111111111</span>\n" + 4 " <span>222222222222</span>\n" + 5 "</dvi>").appendTo("body"); 6 });
3).传入参数为 [ 选择器字符串 ] 时:
$(“#id 属性值”); id 选择器, 根据 id 查询标签对象
$(“标签名”); 标签名选择器, 根据指定的标签名查询标签对象
$(“.class 属性值”); 类型选择器, 可以根据 class 属性查询标签对象
代码:
1 $(function () { 2 alert($("button").length); 3 });
4).传入参数为 [ DOM 对象 ] 时:
会把这个 dom 对象转换为 jQuery 对象
代码:
1 $(function () { 2 var $method = $("btnId"); 3 alert($method); //结果:[object Object] 4 });
3.jQuery实质:jQuery 对象是 dom 对象的数组 + jQuery 提供的一系列功能函数。
4.Dom 对象和 jQuery 对象互转 :
1). dom 对象转化为 jQuery 对象
先有 DOM 对象
$( DOM 对象 ) 就可以转换成为 jQuery 对象
2). jQuery 对象转为 dom 对象
先有 jQuery 对象
jQuery 对象[下标]取出相应的 DOM 对象

5.jQuery选择器:
此部分涉及到内容过多,不方便叙述和插入代码,建议查阅 jQuery API
6.属性:
6.1). attr() 设置或返回被选元素的属性值。
prop() 获取在匹配的元素集中的第一个元素的属性值。
代码:
1 $(function () { 2 //attr() 可以设置和获取属性的值, 不推荐操作 checked、 readOnly、 selected、 disabled 等等 3 //attr()有两个参数时,表示获取值 4 alert($(":checkbox:first").attr("name")); //结果 : checkbox 5 //attr()有两个参数时,表示赋值 6 $(":checkbox:first").attr("name", "123"); //结果:name="123" 7 8 //prop() 可以设置和获取属性的值,只推荐操作 checked、 readOnly、 selected、 disabled 等等 9 alert($(":checkbox:first").prop("name")); //结果:checkbox 10 $(":checkbox").prop("checked","true"); //结果: 多选框全选了 11 });
6.2).html() 它可以设置和获取起始标签和结束标签中的内容。 跟 dom 属性 innerHTML 一样。
text() 它可以设置和获取起始标签和结束标签中的文本。 跟 dom 属性 innerText 一样。
val() 它可以设置和获取表单项的 value 属性值。 跟 dom 属性 value 一样
代码:
1 $(function () { 2 // 不传参数,是获取,传递参数是设置 3 // alert( $("div").html() );// 获取 4 // $("div").html("<h1>我是div中的标题 1</h1>"); //设置内容 5 6 // 不传参数,是获取,传递参数是设置 7 // alert( $("div").text() ); // 获取 8 // $("div").text("<h1>我是div中的标题 1</h1>"); // 设置 9 10 $("button").click(function () { 11 $("input").val("11111111111111"); 12 }) 13 });
6.3).
内部插入:
appendTo() a.appendTo(b) 把 a 插入到 b 子元素末尾, 成为最后一个子元素
prependTo() a.prependTo(b) 把 a 插到 b 所有子元素前面, 成为第一个子元素
外部插入:
insertAfter() a.insertAfter(b) 得到 ba
insertBefore() a.insertBefore(b) 得到 ab
代码:
1 $(function () { 2 //appendTo() a.appendTo(b) 把 a 插入到 b 子元素末尾,成为最后一个子元素 3 $("<h1>444444444</h1>").appendTo("div"); 4 //prependTo() a.prependTo(b) 把 a 插到 b 所有子元素前面,成为第一个子元素 5 $("<h2>66666666666</h2>").prependTo("div"); 6 }); 7 8 $(function () { 9 // insertAfter() a.insertAfter(b) 得到 ba 10 $("<h1>aaaaaaaaaa</h1>").insertAfter("span"); 11 // insertBefore() a.insertBefore(b) 得到 ab 12 $("<h2>bbbbbbbbbbbbbbbbb</h2>").insertBefore("span"); 13 }); 14 15 $(function () { 16 // replaceWith() a.replaceWith(b) 用 b 替换掉 a 17 $("footer").replaceWith($("<h1>ppppppppppppppppppp</h1>")); 18 // replaceAll() a.replaceAll(b) 用 a 替换掉所有 b 19 $("<h1>qqqqqqqqqqqqqq</h1>").replaceAll("article"); 20 }); 21 22 $(function () { 23 //remove() a.remove(); 删除 a 标签 24 $("header").remove(); 25 //empty() a.empty(); 清空 a 标签里的内容 26 $("aside").empty(); 27 });
7.案例:多选框的全选、全不选、反选和提交
代码:
1 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 2 <html> 3 <head> 4 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 5 <title>Insert title here</title> 6 <script type="text/javascript" src="../../script/jquery-1.7.2.js"></script> 7 <script type="text/javascript"> 8 $(function () { 9 // 给全选绑定单击事件 10 $("#checkedAllBtn").click(function () { 11 $(":checkbox[name='items']").prop("checked", true); 12 }); 13 14 // 给全不选绑定单击事件 15 $("#checkedNoBtn").click(function () { 16 $(":checkbox[name='items']").prop("checked", false); 17 }); 18 19 // 反选单击事件 20 $("#checkedRevBtn").click(function () { 21 $(":checkbox[name='items']").each(function () { 22 this.checked = !this.checked; 23 }); 24 // 获取全部的球类个数 25 var allLength = $(":checkbox[name='items']").length; 26 // 获取选中的球类个数 27 var checkedLength1 = $(":checkbox[name='items']:checked").length; 28 $("#checkedAllBox").prop("checked", allLength == checkedLength1); 29 }); 30 31 // 【提交】按钮单击事件 32 $("#sendBtn").click(function () { 33 $(":checkbox[name='items']:checked").each(function () { 34 alert(this.value); 35 }); 36 }); 37 38 // 给【全选/全不选】绑定单击事件 39 $("#checkedAllBox").click(function () { 40 $(":checkbox[name='items']").prop("checked",true); 41 }); 42 // 给全部球类绑定单击事件 43 }); 44 </script> 45 </head> 46 <body> 47 48 <form method="post" action=""> 49 你爱好的运动是?<input type="checkbox" id="checkedAllBox"/>全选/全不选 50 <br/> 51 <input type="checkbox" name="items" value="足球"/>足球 52 <input type="checkbox" name="items" value="篮球"/>篮球 53 <input type="checkbox" name="items" value="羽毛球"/>羽毛球 54 <input type="checkbox" name="items" value="乒乓球"/>乒乓球 55 <br/> 56 <input type="button" id="checkedAllBtn" value="全 选"/> 57 <input type="button" id="checkedNoBtn" value="全不选"/> 58 <input type="button" id="checkedRevBtn" value="反 选"/> 59 <input type="button" id="sendBtn" value="提 交"/> 60 </form> 61 </body> 62 </html>
8.案例:下列列表的移动,效果如下图

代码:
1 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 2 <html> 3 <head> 4 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 5 <title>Insert title here</title> 6 <style type="text/css"> 7 select { 8 width: 100px; 9 height: 140px; 10 } 11 12 div { 13 width: 130px; 14 float: left; 15 text-align: center; 16 } 17 </style> 18 <script type="text/javascript" src="script/jquery-1.7.2.js"></script> 19 <script type="text/javascript"> 20 $(function(){ 21 //选中添加到右边 22 $("button:eq(0)").click(function () { 23 $("select:eq(0) option:selected").appendTo($("select:eq(1)")); 24 }); 25 26 //全部添加到右边 27 $("button:eq(1)").click(function () { 28 $("select:eq(0) option").appendTo($("select:eq(1)")); 29 }); 30 31 // 第三个按钮 【选中删除到左边】 32 $("button:eq(2)").click(function () { 33 $("select:eq(1) option:selected").appendTo($("select:eq(0)")); 34 }); 35 36 // 第四个按钮 【全部删除到左边】 37 $("button:eq(3)").click(function () { 38 $("select:eq(1) option").appendTo($("select:eq(0)")); 39 }); 40 }); 41 </script> 42 </head> 43 <body> 44 <div id="left"> 45 <select multiple="multiple" name="sel01"> 46 <option value="opt01">选项1</option> 47 <option value="opt02">选项2</option> 48 <option value="opt03">选项3</option> 49 <option value="opt04">选项4</option> 50 <option value="opt05">选项5</option> 51 <option value="opt06">选项6</option> 52 <option value="opt07">选项7</option> 53 <option value="opt08">选项8</option> 54 </select> 55 <button>选中添加到右边</button> 56 <button>全部添加到右边</button> 57 </div> 58 <div id="rigth"> 59 <select multiple="multiple" name="sel02"> 60 </select> 61 <button>选中删除到左边</button> 62 <button>全部删除到左边</button> 63 </div> 64 </body> 65 </html>
9.案例:动态的添加和删除表单元素(效果图)

代码:
1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> 2 <html> 3 <head> 4 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 5 <title>Untitled Document</title> 6 <link rel="stylesheet" type="text/css" href="styleB/css.css"/> 7 <script type="text/javascript" src="../../script/jquery-1.7.2.js"></script> 8 <script type="text/javascript"> 9 $(function () { 10 var deleteFun = function () { 11 // 在事件响应的function函数中,有一个this对象。这个this对象是当前正在响应事件的dom对象。 12 var $rm = $(this).parent().parent(); 13 //获取当前要删除的名字 14 var name = $rm.find("td:first").val(); 15 /** 16 * confirm 是JavaScript语言提供的一个确认提示框函数。你给它传什么,它就提示什么<br/> 17 * 当用户点击了确定,就返回true。当用户点击了取消,就返回false 18 */ 19 if (confirm("你确定要删除" + name + "吗?")) { 20 $rm.remove(); 21 } 22 // return false; 可以阻止 元素的默认行为。 23 return false; 24 } 25 $("#addEmpButton").click(function () { 26 // 获取输入框,姓名,邮箱,工资的内容,这几个变量需要放在这个函数里面 27 //value是js中的属性,而val是jq方法。 28 var name = $("#empName").val(); 29 var email = $("#email").val(); 30 var salary = $("#salary").val(); 31 var $insetLine = $("<tr>\n" + 32 " <td>" + name + "</td>\n" + 33 " <td>" + email + "</td>\n" + 34 " <td>" + salary + "</td>\n" + 35 " <td><a href=\"\">Delete</a></td>\n" + 36 " </tr>"); 37 $insetLine.appendTo($("#employeeTable")); 38 // 给添加的行的a标签绑上事件 39 $insetLine.find("a").click(deleteFun); 40 }); 41 // 给删除的a标签绑定单击事件 42 $("a").click(deleteFun); 43 }); 44 </script> 45 </head> 46 <body> 47 48 <table id="employeeTable"> 49 <tr> 50 <th>Name</th> 51 <th>Email</th> 52 <th>Salary</th> 53 <th>Delete</th> 54 </tr> 55 <tr> 56 <td>Tom</td> 57 <td>tom@tom.com</td> 58 <td>5000</td> 59 <td><a href="deleteEmp?id=001">Delete</a></td> 60 </tr> 61 <tr> 62 <td>Jerry</td> 63 <td>jerry@sohu.com</td> 64 <td>8000</td> 65 <td><a href="deleteEmp?id=002">Delete</a></td> 66 </tr> 67 <tr> 68 <td>Bob</td> 69 <td>bob@tom.com</td> 70 <td>10000</td> 71 <td><a href="deleteEmp?id=003">Delete</a></td> 72 </tr> 73 </table> 74 75 <div id="formDiv"> 76 77 <h4>添加新员工</h4> 78 79 <table> 80 <tr> 81 <td class="word">name:</td> 82 <td class="inp"> 83 <input type="text" name="empName" id="empName"/> 84 </td> 85 </tr> 86 <tr> 87 <td class="word">email:</td> 88 <td class="inp"> 89 <input type="text" name="email" id="email"/> 90 </td> 91 </tr> 92 <tr> 93 <td class="word">salary:</td> 94 <td class="inp"> 95 <input type="text" name="salary" id="salary"/> 96 </td> 97 </tr> 98 <tr> 99 <td colspan="2" align="center"> 100 <button id="addEmpButton" value="abc"> 101 Submit 102 </button> 103 </td> 104 </tr> 105 </table> 106 107 </div> 108 109 </body> 110 </html>
10.动画:
show() 将隐藏的元素显示
hide() 将可见的元素隐藏。
toggle() 可见就隐藏, 不可见就显示。
fadeIn() 淡入(慢慢可见)
fadeOut() 淡出(慢慢消失)
fadeTo() 在指定时长内慢慢的将透明度修改到指定的值。 0 透明, 1 完成可见, 0.5 半透明
fadeToggle() 淡入/淡出 切换
代码:
1 $(function () { 2 // show() 将隐藏的元素显示 3 $("#btn1").click(function () { 4 $("#div1").show(); 5 }); 6 // hide() 将可见的元素隐藏。 7 $("#btn2").click(function () { 8 $("#div1").hide(); 9 }); 10 // toggle() 可见就隐藏, 不可见就显示。 11 $("#btn3").click(function () { 12 $("#div1").toggle(); 13 }); 14 // fadeIn() 淡入(慢慢可见) 15 $("#btn4").click(function () { 16 $("#div1").fadeIn(); 17 }); 18 // fadeOut() 淡出(慢慢消失) 19 $("#btn5").click(function () { 20 $("#div1").fadeOut(); 21 }); 22 // fadeTo() 在指定时长内慢慢的将透明度修改到指定的值。 0 透明, 1 完成可见, 0.5 半透明 23 $("#btn6").click(function () { 24 $("#div1").fadeTo(5000, 0.3); 25 }); 26 // fadeToggle() 淡入/淡出 切换 27 $("#btn7").click(function () { 28 $("#div1").fadeToggle(); 29 }); 30 }); 31 </script>
11.案例:动画显示商标(效果图如下)
(重点在于按钮中的内容和图标)没下拉之前

下拉之后

代码:
1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 2 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 3 <html xmlns="http://www.w3.org/1999/xhtml"> 4 <head> 5 <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> 6 <title>品牌展示练习</title> 7 <style type="text/css"> 8 * { 9 margin: 0; 10 padding: 0; 11 } 12 13 body { 14 font-size: 12px; 15 text-align: center; 16 } 17 18 a { 19 color: #04D; 20 text-decoration: none; 21 } 22 23 a:hover { 24 color: #F50; 25 text-decoration: underline; 26 } 27 28 .SubCategoryBox { 29 width: 600px; 30 margin: 0 auto; 31 text-align: center; 32 margin-top: 40px; 33 } 34 35 .SubCategoryBox ul { 36 list-style: none; 37 } 38 39 .SubCategoryBox ul li { 40 display: block; 41 float: left; 42 width: 200px; 43 line-height: 20px; 44 } 45 46 .showmore, .showless { 47 clear: both; 48 text-align: center; 49 padding-top: 10px; 50 } 51 52 .showmore a, .showless a { 53 display: block; 54 width: 120px; 55 margin: 0 auto; 56 line-height: 24px; 57 border: 1px solid #AAA; 58 } 59 60 .showmore a span { 61 padding-left: 15px; 62 background: url(img/down.gif) no-repeat 0 0; 63 } 64 65 .showless a span { 66 padding-left: 15px; 67 background: url(img/up.gif) no-repeat 0 0; 68 } 69 70 .promoted a { 71 color: #F50; 72 } 73 </style> 74 <script type="text/javascript" src="script/jquery-1.7.2.js"></script> 75 <script type="text/javascript"> 76 $(function () { 77 $(".SubCategoryBox li:gt(5):not(:last)").hide(); 78 $("div div a").click(function () { 79 $(".SubCategoryBox li:gt(5)").toggle(); 80 // 判断 品牌,当前是否可见 81 if ($(".SubCategoryBox li:gt(5):not(:last)").is(":hidden")) { 82 // 品牌隐藏的状态 :1 显示全部品牌 == 角标向下 showmore 83 $("div div a span").text("显示全部品牌"); 84 $("div div").removeClass(); 85 $("div div").addClass("showmore"); 86 $("li:contains('佳能')").removeClass("promoted"); 87 } else { 88 // 品牌可见的状态:2 显示精简品牌 == 角标向上 showless 89 $("div div a span").text("显示精简品牌"); 90 $("div div").removeClass(); 91 $("div div").addClass("showless"); 92 $("li:contains('佳能')").addClass("promoted"); 93 } 94 return false; 95 }); 96 }); 97 </script> 98 </head> 99 <body> 100 <div class="SubCategoryBox"> 101 <ul> 102 <li><a href="#">佳能</a><i>(30440) </i></li> 103 <li><a href="#">索尼</a><i>(27220) </i></li> 104 <li><a href="#">三星</a><i>(20808) </i></li> 105 <li><a href="#">尼康</a><i>(17821) </i></li> 106 <li><a href="#">松下</a><i>(12289) </i></li> 107 <li><a href="#">卡西欧</a><i>(8242) </i></li> 108 <li><a href="#">富士</a><i>(14894) </i></li> 109 <li><a href="#">柯达</a><i>(9520) </i></li> 110 <li><a href="#">宾得</a><i>(2195) </i></li> 111 <li><a href="#">理光</a><i>(4114) </i></li> 112 <li><a href="#">奥林巴斯</a><i>(12205) </i></li> 113 <li><a href="#">明基</a><i>(1466) </i></li> 114 <li><a href="#">爱国者</a><i>(3091) </i></li> 115 <li><a href="#">其它品牌相机</a><i>(7275) </i></li> 116 </ul> 117 <div class="showmore"> 118 <a href="more.html"><span>显示全部品牌</span></a> 119 </div> 120 </div> 121 </body> 122 </html>

浙公网安备 33010602011771号