jQuery
jQuery 库 - 特性
jQuery 是一个 JavaScript 函数库。
jQuery 极大地简化了 JavaScript 编程。
jQuery 库包含以下特性:
- HTML 元素选取
- HTML 元素操作
- CSS 操作
- HTML 事件函数
- JavaScript 特效和动画
- HTML DOM 遍历和修改
- AJAX
- Utilities
向您的页面添加 jQuery 库
1.下载 jQuery
共有两个版本的 jQuery 可供下载:一份是精简过的,另一份是未压缩的(供调试或阅读)。
这两个版本都可从 jQuery.com 下载。
2.jQuery 库位于一个 JavaScript 文件中,其中包含了所有的 jQuery 函数。
可以通过下面的标记把 jQuery 添加到网页中:
<head> <script type="text/javascript" src="jquery.js"></script> </head>
jQuery 语法
jQuery 语法是为 HTML 元素的选取编制的,可以对元素执行某些操作。
基础语法是:$(selector).action()
- 美元符号定义 jQuery
- 选择符(selector)“查询”和“查找” HTML 元素
- jQuery 的 action() 执行对元素的操作
示例
$(this).hide() - 隐藏当前元素
$("p").hide() - 隐藏所有段落
$(".test").hide() - 隐藏所有 class="test" 的所有元素
$("#test").hide() - 隐藏所有 id="test" 的元素
提示:jQuery 使用的语法是 XPath 与 CSS 选择器语法的组合。在本教程接下来的章节,您将学习到更多有关选择器的语法。
http://www.w3school.com.cn/jquery/index.asp
jQuery 选择器
选择器允许您对元素组或单个元素进行操作。
选择器 | 实例 | 选取 |
---|---|---|
* | $("*") | 所有元素 |
#id | $("#lastname") | id="lastname" 的元素 |
.class | $(".intro") | 所有 class="intro" 的元素 |
element | $("p") | 所有 <p> 元素 |
.class.class | $(".intro.demo") | 所有 class="intro" 且 class="demo" 的元素 |
:first | $("p:first") | 第一个 <p> 元素 |
:last | $("p:last") | 最后一个 <p> 元素 |
:even | $("tr:even") | 所有偶数 <tr> 元素 |
:odd | $("tr:odd") | 所有奇数 <tr> 元素 |
:eq(index) | $("ul li:eq(3)") | 列表中的第四个元素(index 从 0 开始) |
:gt(no) | $("ul li:gt(3)") | 列出 index 大于 3 的元素 |
:lt(no) | $("ul li:lt(3)") | 列出 index 小于 3 的元素 |
:not(selector) | $("input:not(:empty)") | 所有不为空的 input 元素 |
:header | $(":header") | 所有标题元素 <h1> - <h6> |
:animated | 所有动画元素 | |
:contains(text) | $(":contains('W3School')") | 包含指定字符串的所有元素 |
:empty | $(":empty") | 无子(元素)节点的所有元素 |
:hidden | $("p:hidden") | 所有隐藏的 <p> 元素 |
:visible | $("table:visible") | 所有可见的表格 |
s1,s2,s3 | $("th,td,.intro") | 所有带有匹配选择的元素 |
[attribute] | $("[href]") | 所有带有 href 属性的元素 |
[attribute=value] | $("[href='#']") | 所有 href 属性的值等于 "#" 的元素 |
[attribute!=value] | $("[href!='#']") | 所有 href 属性的值不等于 "#" 的元素 |
[attribute$=value] | $("[href$='.jpg']") | 所有 href 属性的值包含以 ".jpg" 结尾的元素 |
:input | $(":input") | 所有 <input> 元素 |
:text | $(":text") | 所有 type="text" 的 <input> 元素 |
:password | $(":password") | 所有 type="password" 的 <input> 元素 |
:radio | $(":radio") | 所有 type="radio" 的 <input> 元素 |
:checkbox | $(":checkbox") | 所有 type="checkbox" 的 <input> 元素 |
:submit | $(":submit") | 所有 type="submit" 的 <input> 元素 |
:reset | $(":reset") | 所有 type="reset" 的 <input> 元素 |
:button | $(":button") | 所有 type="button" 的 <input> 元素 |
:image | $(":image") | 所有 type="image" 的 <input> 元素 |
:file | $(":file") | 所有 type="file" 的 <input> 元素 |
:enabled | $(":enabled") | 所有激活的 input 元素 |
:disabled | $(":disabled") | 所有禁用的 input 元素 |
:selected | $(":selected") | 所有被选取的 input 元素 |
:checked | $(":checked") | 所有被选中的 input 元素 |
实例:
1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5 <title>Title</title> 6 7 </head> 8 <body> 9 10 <input type="button" value="全选" onclick="ChooseAll();" /> 11 <input type="button" value="取消" onclick="CancleAll();" /> 12 <input type="button" value="反选" onclick="ReverseAll();" /> 13 <table border="2"> 14 <thead> 15 <tr> 16 <th>选择</th> 17 <th>主机名</th> 18 <th>端口号</th> 19 </tr> 20 </thead> 21 <tbody id="tb"> 22 <tr> 23 <td><input type="checkbox"/></td> 24 <td>1.1.1.1</td> 25 <td>1000</td> 26 </tr> 27 <tr> 28 <td><input type="checkbox"/></td> 29 <td>2.2.2.2</td> 30 <td>2000</td> 31 </tr> 32 <tr> 33 <td><input type="checkbox"/></td> 34 <td>3.3.3.3</td> 35 <td>3000</td> 36 </tr> 37 <tr> 38 <td><input type="checkbox"/></td> 39 <td>3.3.3.3</td> 40 <td>3000</td> 41 </tr> 42 <tr> 43 <td><input type="checkbox"/></td> 44 <td>3.3.3.3</td> 45 <td>3000</td> 46 </tr> 47 <tr> 48 <td><input type="checkbox"/></td> 49 <td>3.3.3.3</td> 50 <td>3000</td> 51 </tr> 52 </tbody> 53 </table> 54 55 56 57 <script src="jquery-1.12.4.js"></script> 58 <script> 59 function ChooseAll() { 60 $("#tb :checkbox").prop("checked",true); 61 } 62 function CancleAll() { 63 $("#tb :checkbox").prop("checked",false); 64 } 65 function ReverseAll() { 66 $("#tb :checkbox").each(function () { 67 //DOM 68 /* if(this.checked){ //this指当前循环的每一个元素 69 this.checked = false 70 }else{ 71 this.checked = true 72 }*/ 73 74 //jquery 75 /*if($(this).prop("checked")){ 76 $(this).prop("checked", false); 77 }else{ 78 $(this).prop("checked", true); 79 }*/ 80 81 //三元运算 82 var v = $(this).prop("checked") ? false:true 83 $(this).prop("checked",v) 84 }) 85 } 86 </script> 87 88 89 90 </body> 91 </html>
1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5 <title>Title</title> 6 <style> 7 .item{ 8 width: 200px; 9 border: 1px solid #888888; 10 } 11 .header{ 12 background-color: #0d8ddb; 13 width: 200px; 14 } 15 .hide{ 16 display: none; 17 } 18 19 </style> 20 </head> 21 <body> 22 <div class="item"> 23 <div class="header">菜单1</div> 24 <div class="content"> 25 <div>内容1</div> 26 <div>内容1</div> 27 <div>内容1</div> 28 <div>内容1</div> 29 </div> 30 </div> 31 <div class="item"> 32 <div class="header">菜单2</div> 33 <div class="content hide"> 34 <div>内容1</div> 35 <div>内容1</div> 36 <div>内容1</div> 37 <div>内容1</div> 38 </div> 39 </div> 40 <div class="item"> 41 <div class="header">菜单3</div> 42 <div class="content hide"> 43 <div>内容1</div> 44 <div>内容1</div> 45 <div>内容1</div> 46 <div>内容1</div> 47 </div> 48 </div> 49 <div class="item"> 50 <div class="header">菜单4</div> 51 <div class="content hide"> 52 <div>内容1</div> 53 <div>内容1</div> 54 <div>内容1</div> 55 <div>内容1</div> 56 </div> 57 </div> 58 <div class="item"> 59 <div class="header">菜单5</div> 60 <div class="content hide"> 61 <div>内容1</div> 62 <div>内容1</div> 63 <div>内容1</div> 64 <div>内容1</div> 65 </div> 66 </div> 67 68 <script src="jquery-1.12.4.js"></script> 69 <script> 70 $(".header").click(function () { 71 // $(this).next().removeClass("hide"); 72 // $(this).parent().siblings().find(".content").addClass("hide"); 73 $(this).next().removeClass("hide").parent().siblings().find(".content").addClass("hide"); 74 }) 75 </script> 76 77 </body> 78 </html>
jQuery 事件方法
事件方法会触发匹配元素的事件,或将函数绑定到所有匹配元素的某个事件。
触发实例:
$("button#demo").click()
上面的例子将触发 id="demo" 的 button 元素的 click 事件。
绑定实例:
$("button#demo").click(function(){$("img").hide()})
上面的例子会在点击 id="demo" 的按钮时隐藏所有图像。
事件的绑定方式:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <div class="c1"> <div class="c2">123</div> </div> <script src="jquery-1.12.4.js"></script> <script> /*//第一种绑定 $(".c1").click(function () { alert(123); })*/ /*//第二种绑定 $(".c1").bind("click",function () { alert(123); }); $(".c1").unbind("click",function () { alert(123); })*/ /*//第三种绑定 $(".c1").on("click",function () { alert(123); }); $(".c1").off("click",function () { alert(123); });*/ //第四种绑定 这种绑定可以为添加的新标签绑定事件 $(".c1").delegate(".c2","click",function () { alert(123); } ); $(".c1").undelegate(".c2","click",function () { alert(123); } ) </script> </body> </html>
事件阻止方式:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <a onclick=" return Click();" href="http://www.baidu.com">百度</a> <a id="i1" onclick="Click();" href="http://www.baidu.com">百度</a> <script src="jquery-1.12.4.js"></script> <script> function Click() { alert(123); return false; } $("#i1").click(function () { alert(123); return false; }) </script> </body> </html>
方法 | 描述 |
---|---|
bind() | 向匹配元素附加一个或更多事件处理器 |
blur() | 触发、或将函数绑定到指定元素的 blur 事件 |
change() | 触发、或将函数绑定到指定元素的 change 事件 |
click() | 触发、或将函数绑定到指定元素的 click 事件 |
dblclick() | 触发、或将函数绑定到指定元素的 double click 事件 |
delegate() | 向匹配元素的当前或未来的子元素附加一个或多个事件处理器 |
die() | 移除所有通过 live() 函数添加的事件处理程序。 |
error() | 触发、或将函数绑定到指定元素的 error 事件 |
event.isDefaultPrevented() | 返回 event 对象上是否调用了 event.preventDefault()。 |
event.pageX | 相对于文档左边缘的鼠标位置。 |
event.pageY | 相对于文档上边缘的鼠标位置。 |
event.preventDefault() | 阻止事件的默认动作。 |
event.result | 包含由被指定事件触发的事件处理器返回的最后一个值。 |
event.target | 触发该事件的 DOM 元素。 |
event.timeStamp | 该属性返回从 1970 年 1 月 1 日到事件发生时的毫秒数。 |
event.type | 描述事件的类型。 |
event.which | 指示按了哪个键或按钮。 |
focus() | 触发、或将函数绑定到指定元素的 focus 事件 |
keydown() | 触发、或将函数绑定到指定元素的 key down 事件 |
keypress() | 触发、或将函数绑定到指定元素的 key press 事件 |
keyup() | 触发、或将函数绑定到指定元素的 key up 事件 |
live() | 为当前或未来的匹配元素添加一个或多个事件处理器 |
load() | 触发、或将函数绑定到指定元素的 load 事件 |
mousedown() | 触发、或将函数绑定到指定元素的 mouse down 事件 |
mouseenter() | 触发、或将函数绑定到指定元素的 mouse enter 事件 |
mouseleave() | 触发、或将函数绑定到指定元素的 mouse leave 事件 |
mousemove() | 触发、或将函数绑定到指定元素的 mouse move 事件 |
mouseout() | 触发、或将函数绑定到指定元素的 mouse out 事件 |
mouseover() | 触发、或将函数绑定到指定元素的 mouse over 事件 |
mouseup() | 触发、或将函数绑定到指定元素的 mouse up 事件 |
one() | 向匹配元素添加事件处理器。每个元素只能触发一次该处理器。 |
ready() | 文档就绪事件(当 HTML 文档就绪可用时) |
resize() | 触发、或将函数绑定到指定元素的 resize 事件 |
scroll() | 触发、或将函数绑定到指定元素的 scroll 事件 |
select() | 触发、或将函数绑定到指定元素的 select 事件 |
submit() | 触发、或将函数绑定到指定元素的 submit 事件 |
toggle() | 绑定两个或多个事件处理器函数,当发生轮流的 click 事件时执行。 |
trigger() | 所有匹配元素的指定事件 |
triggerHandler() | 第一个被匹配元素的指定事件 |
unbind() | 从匹配元素移除一个被添加的事件处理器 |
undelegate() | 从匹配元素移除一个被添加的事件处理器,现在或将来 |
unload() | 触发、或将函数绑定到指定元素的 unload 事件 |
实例:
1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5 <title>Title</title> 6 <style> 7 .hide{ 8 display: none; 9 } 10 .menu{ 11 height: 40px; 12 background-color: #888888; 13 line-height: 40px; 14 } 15 .active{ 16 background-color: green; 17 } 18 .menu .menu-item{ 19 float: left; 20 border-right: #1AB394 1px solid; 21 padding: 0 5px; 22 cursor: pointer; //鼠标变成小手 23 } 24 .content{ 25 min-height: 400px; 26 border: #2b542c 1px solid; 27 } 28 </style> 29 </head> 30 <body> 31 <div style=" 700px;margin: 0 auto;"> 32 <div class="menu"> 33 <div class="menu-item active" a="1">菜单一</div> 34 <div class="menu-item" a="2">菜单二</div> 35 <div class="menu-item" a="3">菜单三</div> 36 </div> 37 <div class="content"> 38 <div b="1">内容1内容1内容1内容1内容1内容1内容1</div> 39 <div class="hide" b="2">内容2内容2内容2内容2内容2内容2内容2</div> 40 <div class="hide" b="3">内容3内容3内容3内容3内容3内容3内容3</div> 41 </div> 42 </div> 43 <script src="jquery-1.12.4.js"></script> 44 <script> 45 $(".menu-item").click(function () { 46 $(this).addClass("active").siblings().removeClass("active"); 47 var tar = $(this).attr("a"); 48 $(".content").children('[b="'+tar+'"]').removeClass("hide").siblings().addClass("hide"); 49 }) 50 </script> 51 52 </body> 53 </html>
1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5 <title>Title</title> 6 <style> 7 .hide{ 8 display: none; 9 } 10 .menu{ 11 height: 40px; 12 background-color: #888888; 13 line-height: 40px; 14 } 15 .active{ 16 background-color: green; 17 } 18 .menu .menu-item{ 19 float: left; 20 border-right: #1AB394 1px solid; 21 padding: 0 5px; 22 cursor: pointer; //鼠标变成小手 23 } 24 .content{ 25 min-height: 400px; 26 border: #2b542c 1px solid; 27 } 28 </style> 29 </head> 30 <body> 31 <div style=" 700px;margin: 0 auto;"> 32 <div class="menu"> 33 <div class="menu-item active" >菜单一</div> 34 <div class="menu-item" >菜单二</div> 35 <div class="menu-item" >菜单三</div> 36 </div> 37 <div class="content"> 38 <div >内容1内容1内容1内容1内容1内容1内容1</div> 39 <div class="hide" >内容2内容2内容2内容2内容2内容2内容2</div> 40 <div class="hide" >内容3内容3内容3内容3内容3内容3内容3</div> 41 </div> 42 </div> 43 <script src="jquery-1.12.4.js"></script> 44 <script> 45 $(".menu-item").click(function () { 46 $(this).addClass("active").siblings().removeClass("active"); 47 var tar = $(this).index(); 48 $(".content").children().eq(tar).removeClass("hide").siblings().addClass("hide"); 49 50 }) 51 </script> 52 53 </body> 54 </html>
jQuery 效果
隐藏、显示、切换,滑动,淡入淡出,以及动画,哇哦!
方法 | 描述 |
---|---|
animate() | 对被选元素应用“自定义”的动画 |
clearQueue() | 对被选元素移除所有排队的函数(仍未运行的) |
delay() | 对被选元素的所有排队函数(仍未运行)设置延迟 |
dequeue() | 运行被选元素的下一个排队函数 |
fadeIn() | 逐渐改变被选元素的不透明度,从隐藏到可见 |
fadeOut() | 逐渐改变被选元素的不透明度,从可见到隐藏 |
fadeTo() | 把被选元素逐渐改变至给定的不透明度 |
hide() | 隐藏被选的元素 |
queue() | 显示被选元素的排队函数 |
show() | 显示被选的元素 |
slideDown() | 通过调整高度来滑动显示被选元素 |
slideToggle() | 对被选元素进行滑动隐藏和滑动显示的切换 |
slideUp() | 通过调整高度来滑动隐藏被选元素 |
stop() | 停止在被选元素上运行动画 |
toggle() | 对被选元素进行隐藏和显示的切换 |
jQuery 文档操作方法
这些方法对于 XML 文档和 HTML 文档均是适用的,除了:html()。
方法 | 描述 |
---|---|
addClass() | 向匹配的元素添加指定的类名。 |
after() | 在匹配的元素之后插入内容。 |
append() | 向匹配元素集合中的每个元素结尾插入由参数指定的内容。 |
appendTo() | 向目标结尾插入匹配元素集合中的每个元素。 |
attr() | 设置或返回匹配元素的属性和值。 |
before() | 在每个匹配的元素之前插入内容。 |
clone() | 创建匹配元素集合的副本。 |
detach() | 从 DOM 中移除匹配元素集合。 |
empty() | 删除匹配的元素集合中所有的子节点。 |
hasClass() | 检查匹配的元素是否拥有指定的类。 |
html() | 设置或返回匹配的元素集合中的 HTML 内容。 |
insertAfter() | 把匹配的元素插入到另一个指定的元素集合的后面。 |
insertBefore() | 把匹配的元素插入到另一个指定的元素集合的前面。 |
prepend() | 向匹配元素集合中的每个元素开头插入由参数指定的内容。 |
prependTo() | 向目标开头插入匹配元素集合中的每个元素。 |
remove() | 移除所有匹配的元素。 |
removeAttr() | 从所有匹配的元素中移除指定的属性。 |
removeClass() | 从所有匹配的元素中删除全部或者指定的类。 |
replaceAll() | 用匹配的元素替换所有匹配到的元素。 |
replaceWith() | 用新内容替换匹配的元素。 |
text() | 设置或返回匹配元素的内容。 |
toggleClass() | 从匹配的元素中添加或删除一个类。 |
unwrap() | 移除并替换指定元素的父元素。 |
val() | 设置或返回匹配元素的值。 |
wrap() | 把匹配的元素用指定的内容或元素包裹起来。 |
wrapAll() | 把所有匹配的元素用指定的内容或元素包裹起来。 |
wrapinner() | 将每一个匹配的元素的子内容用指定的内容或元素包裹起来。 |
jQuery 属性操作方法
下面列出的这些方法获得或设置元素的 DOM 属性。
这些方法对于 XML 文档和 HTML 文档均是适用的,除了:html()。
方法 | 描述 |
---|---|
addClass() | 向匹配的元素添加指定的类名。 |
attr() | 设置或返回匹配元素的属性和值。 |
hasClass() | 检查匹配的元素是否拥有指定的类。 |
html() | 设置或返回匹配的元素集合中的 HTML 内容。 |
removeAttr() | 从所有匹配的元素中移除指定的属性。 |
removeClass() | 从所有匹配的元素中删除全部或者指定的类。 |
toggleClass() | 从匹配的元素中添加或删除一个类。 |
val() | 设置或返回匹配元素的值。 |
实例:
1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5 <title>Title</title> 6 <style> 7 .hide{ 8 display: none; 9 } 10 .ed1{ 11 position: fixed; 12 top: 50%; 13 left: 50%; 14 width: 400px; 15 height: 400px; 16 margin-top: -200px; 17 margin-left: -200px; 18 background-color: white; 19 z-index: 10; 20 } 21 .shade{ 22 position: fixed; 23 top: 0; 24 left: 0; 25 bottom: 0; 26 right: 0; 27 background-color: black; 28 opacity: 0.6; 29 z-index: 9; 30 } 31 </style> 32 </head> 33 <body style="margin: 0"> 34 35 <input type="button" value="添加" onclick="addModel();"/> 36 <table border="1"> 37 <thead> 38 <tr> 39 <th>主机IP</th> 40 <th>端口号</th> 41 <th>编辑属性</th> 42 </tr> 43 </thead> 44 <tbody> 45 <tr> 46 <td>1.1.1.1</td> 47 <td>111</td> 48 <td><a class="edit">编辑</a><a>取消</a></td> 49 </tr> 50 <tr> 51 <td>2.2.2.2</td> 52 <td>222</td> 53 <td><a class="edit">编辑</a><a>取消</a></td> 54 </tr> 55 <tr> 56 <td>3.3.3.3</td> 57 <td>333</td> 58 <td><a class="edit">编辑</a><a>取消</a></td> 59 </tr> 60 <tr> 61 <td>4.4.4.4</td> 62 <td>444</td> 63 <td><a class="edit">编辑</a><a>取消</a></td> 64 </tr> 65 66 </tbody> 67 </table> 68 69 <!--遮罩层开始--> 70 <div class="shade hide"></div> 71 <!--遮罩层结束--> 72 73 <!--编辑框开始--> 74 <div class="ed1 hide"> 75 76 <p><input name="host" type="text" /></p> 77 <p><input name="port" type="text" /></p> 78 79 <p><input type="button" value="取消" onclick="hideModel()"/> 80 <input type="button" value="确定"/></p> 81 82 </div> 83 <!--编辑框结束--> 84 85 86 <script src="jquery-1.12.4.js"></script> 87 <script> 88 function addModel() { 89 $(".shade,.ed1").removeClass("hide"); 90 91 } 92 function hideModel() { 93 $(".shade,.ed1").addClass("hide"); 94 $(".ed1 input[type='text']").val(""); 95 } 96 97 $(".edit").click(function () { 98 $(".shade,.ed1").removeClass("hide"); 99 100 var tds = $(this).parent().prevAll(); 101 var host =$(tds[1]).text(); 102 var port =$(tds[0]).text(); 103 104 $(".ed1 input[name='host']").val(host); 105 $(".ed1 input[name='port']").val(port); 106 107 }) 108 109 </script> 110 111 </body> 112 </html>
1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5 <title>Title</title> 6 <style> 7 .hide{ 8 display: none; 9 } 10 .ed1{ 11 position: fixed; 12 top: 50%; 13 left: 50%; 14 width: 400px; 15 height: 400px; 16 margin-top: -200px; 17 margin-left: -200px; 18 background-color: white; 19 z-index: 10; 20 } 21 .shade{ 22 position: fixed; 23 top: 0; 24 left: 0; 25 bottom: 0; 26 right: 0; 27 background-color: black; 28 opacity: 0.6; 29 z-index: 9; 30 } 31 </style> 32 </head> 33 <body style="margin: 0"> 34 35 <input type="button" value="添加" onclick="addModel();"/> 36 <table border="1"> 37 <thead> 38 <tr> 39 <th>主机IP</th> 40 <th>端口号</th> 41 <th>编辑属性</th> 42 </tr> 43 </thead> 44 <tbody> 45 <tr> 46 <td target="host">1.1.1.1</td> 47 <td target="port">111</td> 48 <td target="ip">1111</td> 49 <td><a class="edit">编辑</a><a>取消</a></td> 50 </tr> 51 <tr> 52 <td target="host">2.2.2.2</td> 53 <td target="port">222</td> 54 <td target="ip">2222</td> 55 <td><a class="edit">编辑</a><a>取消</a></td> 56 </tr> 57 <tr> 58 <td target="host">3.3.3.3</td> 59 <td target="port">333</td> 60 <td target="ip">3333</td> 61 <td><a class="edit">编辑</a><a>取消</a></td> 62 </tr> 63 <tr> 64 <td target="host">4.4.4.4</td> 65 <td target="port">444</td> 66 <td target="ip">4444</td> 67 <td><a class="edit">编辑</a><a>取消</a></td> 68 </tr> 69 70 </tbody> 71 </table> 72 73 <!--遮罩层开始--> 74 <div class="shade hide"></div> 75 <!--遮罩层结束--> 76 77 <!--编辑框开始--> 78 <div class="ed1 hide"> 79 80 <p><input name="host" type="text" /></p> 81 <p><input name="port" type="text" /></p> 82 <p><input name="ip" type="password" /></p> 83 84 <p><input type="button" value="取消" onclick="hideModel()"/> 85 <input type="button" value="确定"/></p> 86 87 </div> 88 <!--编辑框结束--> 89 90 91 <script src="jquery-1.12.4.js"></script> 92 <script> 93 function addModel() { 94 $(".shade,.ed1").removeClass("hide"); 95 96 } 97 function hideModel() { 98 $(".shade,.ed1").addClass("hide"); 99 $(".ed1 input[type='text']").val(""); 100 } 101 102 $(".edit").click(function () { 103 $(".shade,.ed1").removeClass("hide"); 104 105 var tds = $(this).parent().prevAll(); 106 tds.each(function () { 107 var n = $(this).attr("target"); 108 var text = $(this).text(); 109 var a1=".ed1 input[name='"; 110 var a2 = "']"; 111 112 $(a1+n+a2).val(text); 113 114 }) 115 116 117 118 }) 119 120 </script> 121 122 </body> 123 </html>
1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5 <title>Title</title> 6 <style> 7 .hide{ 8 display: none; 9 } 10 .ed1{ 11 position: fixed; 12 top: 50%; 13 left: 50%; 14 width: 400px; 15 height: 400px; 16 margin-top: -200px; 17 margin-left: -200px; 18 background-color: white; 19 z-index: 10; 20 } 21 .shade{ 22 position: fixed; 23 top: 0; 24 left: 0; 25 bottom: 0; 26 right: 0; 27 background-color: black; 28 opacity: 0.6; 29 z-index: 9; 30 } 31 </style> 32 </head> 33 <body style="margin: 0"> 34 35 <input type="button" value="添加" onclick="addModel();"/> 36 <table border="1" id="tb"> 37 <thead> 38 <tr> 39 <th>主机IP</th> 40 <th>端口号</th> 41 <th>编辑属性</th> 42 </tr> 43 </thead> 44 <tbody> 45 <tr> 46 <td target="host">1.1.1.1</td> 47 <td target="port">111</td> 48 <td target="ip">1111</td> 49 <td><a class="edit">编辑</a>|<a class="del">取消</a></td> 50 </tr> 51 <tr> 52 <td target="host">2.2.2.2</td> 53 <td target="port">222</td> 54 <td target="ip">2222</td> 55 <td><a class="edit">编辑</a>|<a class="del">取消</a></td> 56 </tr> 57 <tr> 58 <td target="host">3.3.3.3</td> 59 <td target="port">333</td> 60 <td target="ip">3333</td> 61 <td><a class="edit">编辑</a>|<a class="del">取消</a></td> 62 </tr> 63 <tr> 64 <td target="host">4.4.4.4</td> 65 <td target="port">444</td> 66 <td target="ip">4444</td> 67 <td><a class="edit">编辑</a>|<a class="del">取消</a></td> 68 </tr> 69 70 </tbody> 71 </table> 72 73 <!--遮罩层开始--> 74 <div class="shade hide"></div> 75 <!--遮罩层结束--> 76 77 <!--编辑框开始--> 78 <div class="ed1 hide"> 79 80 <p><input name="host" type="text" /></p> 81 <p><input name="port" type="text" /></p> 82 <p><input name="ip" type="password" /></p> 83 84 <p><input type="button" value="取消" onclick="hideModel();"/> 85 <input type="button" value="确定" onclick="confirmModel();"/></p> 86 87 </div> 88 <!--编辑框结束--> 89 90 91 <script src="jquery-1.12.4.js"></script> 92 <script> 93 $(".del").click(function () { 94 $(this).parent().parent().remove(); 95 }); 96 97 function confirmModel() { 98 var tr = document.createElement("tr"); 99 var td1 = document.createElement("td"); 100 var t1 = $(".ed1 input[name='host']").val(); 101 $(tr).append($(td1).append(t1)); 102 var td2 = document.createElement("td"); 103 var t2 = $(".ed1 input[name='port']").val(); 104 $(tr).append($(td2).append(t2)); 105 var td3 = document.createElement("td"); 106 var t3 = $(".ed1 input[name='ip']").val(); 107 $(tr).append($(td3).append(t3)); 108 var td4 = document.createElement("td"); 109 var a1="<a class='edit'>编辑</a>|<a class='del'>取消</a>"; 110 $(tr).append($(td4).append(a1)); 111 112 $("#tb").append(tr); 113 $(".shade,.ed1").addClass("hide"); 114 } 115 116 function addModel() { 117 $(".shade,.ed1").removeClass("hide"); 118 119 } 120 function hideModel() { 121 $(".shade,.ed1").addClass("hide"); 122 $(".ed1 input[type='text']").val(""); 123 } 124 125 $(".edit").click(function () { 126 $(".shade,.ed1").removeClass("hide"); 127 128 var tds = $(this).parent().prevAll(); 129 tds.each(function () { 130 var n = $(this).attr("target"); 131 var text = $(this).text(); 132 var a1=".ed1 input[name='"; 133 var a2 = "']"; 134 135 $(a1+n+a2).val(text); 136 137 }) 138 139 140 141 }) 142 143 </script> 144 145 </body> 146 </html>
jQuery CSS 操作函数
下面列出的这些方法设置或返回元素的 CSS 相关属性。
CSS 属性 | 描述 |
---|---|
css() | 设置或返回匹配元素的样式属性。 |
height() | 设置或返回匹配元素的高度。(纯高度) |
innerHight() | 设置或返回匹配元素的纯高度+外边距(margin) |
outerHeight() | 设置或返回匹配元素的纯高度+外边距(margin)+边框(border) |
outerHeight(true) | 设置或返回匹配元素的纯高度+外边距(margin)+边框(border)+内边距(padding) |
offset() | 返回第一个匹配元素相对于文档的位置。 |
offsetParent() | 返回最近的定位祖先元素。 |
position() | 返回第一个匹配元素相对于父元素的位置。 |
scrollLeft() | 设置或返回匹配元素相对滚动条左侧的偏移。 |
scrollTop() | 设置或返回匹配元素相对滚动条顶部的偏移。 |
width() |
设置或返回匹配元素的宽度。 |
实例:
1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5 <title>Title</title> 6 <style> 7 .content{ 8 width: 980px; 9 margin: 0 auto; 10 padding: 50px; 11 border-bottom: #888888 1px solid; 12 } 13 .item{ 14 position: relative; 15 width: 60px; 16 } 17 </style> 18 </head> 19 <body> 20 <div class="content"> 21 <div class="item"> 22 <span>点赞</span> 23 </div> 24 </div> 25 <div class="content"> 26 <div class="item"> 27 <span>点赞</span> 28 </div> 29 </div> 30 <div class="content"> 31 <div class="item"> 32 <span>点赞</span> 33 </div> 34 </div> 35 <div class="content"> 36 <div class="item"> 37 <span>点赞</span> 38 </div> 39 </div> 40 41 <script src="jquery-1.12.4.js"></script> 42 <script> 43 $(".item").click(function () { 44 var fontSize = 15; 45 var top = 0; 46 var right = 0; 47 var opacity = 1; 48 49 var tag = document.createElement("span"); 50 $(tag).text("+1"); 51 $(tag).css("color","green"); 52 $(tag).css("position","absolute"); 53 $(tag).css("fontSize",fontSize+"px"); 54 $(tag).css("top",top+"px"); 55 $(tag).css("right",right+"px"); 56 $(tag).css("opacity",opacity); 57 $(this).append(tag); 58 59 var obj = setInterval(function () { 60 fontSize = fontSize + 5; 61 top = top -5; 62 right = right - 5; 63 opacity = opacity - 0.1; 64 65 $(tag).css("fontSize",fontSize+"px"); 66 $(tag).css("top",top+"px"); 67 $(tag).css("right",right+"px"); 68 $(tag).css("opacity",opacity); 69 70 if(opacity <0){ 71 clearInterval(obj); 72 $(tag).remove(); 73 } 74 75 },100); 76 77 }) 78 </script> 79 </body> 80 </html>
jQuery Ajax 操作函数
jQuery 库拥有完整的 Ajax 兼容套件。其中的函数和方法允许我们在不刷新浏览器的情况下从服务器加载数据。
函数 | 描述 |
---|---|
jQuery.ajax() | 执行异步 HTTP (Ajax) 请求。 |
.ajaxComplete() | 当 Ajax 请求完成时注册要调用的处理程序。这是一个 Ajax 事件。 |
.ajaxError() | 当 Ajax 请求完成且出现错误时注册要调用的处理程序。这是一个 Ajax 事件。 |
.ajaxSend() | 在 Ajax 请求发送之前显示一条消息。 |
jQuery.ajaxSetup() | 设置将来的 Ajax 请求的默认值。 |
.ajaxStart() | 当首个 Ajax 请求完成开始时注册要调用的处理程序。这是一个 Ajax 事件。 |
.ajaxStop() | 当所有 Ajax 请求完成时注册要调用的处理程序。这是一个 Ajax 事件。 |
.ajaxSuccess() | 当 Ajax 请求成功完成时显示一条消息。 |
jQuery.get() | 使用 HTTP GET 请求从服务器加载数据。 |
jQuery.getJSON() | 使用 HTTP GET 请求从服务器加载 JSON 编码数据。 |
jQuery.getScript() | 使用 HTTP GET 请求从服务器加载 JavaScript 文件,然后执行该文件。 |
.load() | 从服务器加载数据,然后把返回到 HTML 放入匹配元素。 |
jQuery.param() | 创建数组或对象的序列化表示,适合在 URL 查询字符串或 Ajax 请求中使用。 |
jQuery.post() | 使用 HTTP POST 请求从服务器加载数据。 |
.serialize() | 将表单内容序列化为字符串。 |
.serializeArray() | 序列化表单元素,返回 JSON 数据结构数据。 |
jQuery 遍历函数
jQuery 遍历函数包括了用于筛选、查找和串联元素的方法。
函数 | 描述 |
---|---|
.add() | 将元素添加到匹配元素的集合中。 |
.andSelf() | 把堆栈中之前的元素集添加到当前集合中。 |
.children() | 获得匹配元素集合中每个元素的所有子元素。 |
.closest() | 从元素本身开始,逐级向上级元素匹配,并返回最先匹配的祖先元素。 |
.contents() | 获得匹配元素集合中每个元素的子元素,包括文本和注释节点。 |
.each() | 对 jQuery 对象进行迭代,为每个匹配元素执行函数。 |
.end() | 结束当前链中最近的一次筛选操作,并将匹配元素集合返回到前一次的状态。 |
.eq() | 将匹配元素集合缩减为位于指定索引的新元素。 |
.filter() | 将匹配元素集合缩减为匹配选择器或匹配函数返回值的新元素。 |
.find() | 获得当前匹配元素集合中每个元素的后代,由选择器进行筛选。 |
.first() | 将匹配元素集合缩减为集合中的第一个元素。 |
.has() | 将匹配元素集合缩减为包含特定元素的后代的集合。 |
.is() | 根据选择器检查当前匹配元素集合,如果存在至少一个匹配元素,则返回 true。 |
.last() | 将匹配元素集合缩减为集合中的最后一个元素。 |
.map() | 把当前匹配集合中的每个元素传递给函数,产生包含返回值的新 jQuery 对象。 |
.next() | 获得匹配元素集合中每个元素紧邻的同辈元素。 |
.nextAll() | 获得匹配元素集合中每个元素之后的所有同辈元素,由选择器进行筛选(可选)。 |
.nextUntil() | 获得每个元素之后所有的同辈元素,直到遇到匹配选择器的元素为止。 |
.not() | 从匹配元素集合中删除元素。 |
.offsetParent() | 获得用于定位的第一个父元素。 |
.parent() | 获得当前匹配元素集合中每个元素的父元素,由选择器筛选(可选)。 |
.parents() | 获得当前匹配元素集合中每个元素的祖先元素,由选择器筛选(可选)。 |
.parentsUntil() | 获得当前匹配元素集合中每个元素的祖先元素,直到遇到匹配选择器的元素为止。 |
.prev() | 获得匹配元素集合中每个元素紧邻的前一个同辈元素,由选择器筛选(可选)。 |
.prevAll() | 获得匹配元素集合中每个元素之前的所有同辈元素,由选择器进行筛选(可选)。 |
.prevUntil() | 获得每个元素之前所有的同辈元素,直到遇到匹配选择器的元素为止。 |
.siblings() | 获得匹配元素集合中所有元素的同辈元素,由选择器筛选(可选)。 |
.slice() | 将匹配元素集合缩减为指定范围的子集。 |
jQuery 数据操作函数
这些方法允许我们将指定的 DOM 元素与任意数据相关联。
函数 | 描述 |
---|---|
.clearQueue() | 从队列中删除所有未运行的项目。 |
.data() | 存储与匹配元素相关的任意数据。 |
jQuery.data() | 存储与指定元素相关的任意数据。 |
.dequeue() | 从队列最前端移除一个队列函数,并执行它。 |
jQuery.dequeue() | 从队列最前端移除一个队列函数,并执行它。 |
jQuery.hasData() | 存储与匹配元素相关的任意数据。 |
.queue() | 显示或操作匹配元素所执行函数的队列。 |
jQuery.queue() | 显示或操作匹配元素所执行函数的队列。 |
.removeData() | 移除之前存放的数据。 |
jQuery.removeData() | 移除之前存放的数据。 |
jQuery DOM 元素方法
函数 | 描述 |
---|---|
.get() | 获得由选择器指定的 DOM 元素。 |
.index() | 返回指定元素相对于其他指定元素的 index 位置。 |
.size() | 返回被 jQuery 选择器匹配的元素的数量。 |
.toArray() | 以数组的形式返回 jQuery 选择器匹配的元素。 |
jQuery 核心函数
函数 | 描述 |
---|---|
jQuery() | 接受一个字符串,其中包含了用于匹配元素集合的 CSS 选择器。 |
jQuery.noConflict() | 运行这个函数将变量 $ 的控制权让渡给第一个实现它的那个库。 |
jQuery 属性
下面列出的这些方法设置或返回元素的 CSS 相关属性。
属性 | 描述 |
---|---|
context | 在版本 1.10 中被弃用。包含传递给 jQuery() 的原始上下文。 |
jquery | 包含 jQuery 版本号。 |
jQuery.fx.interval | 改变以毫秒计的动画速率。 |
jQuery.fx.off | 全局禁用/启用所有动画。 |
jQuery.support | 表示不同浏览器特性或漏洞的属性集合(用于 jQuery 内部使用)。 |
length | 包含 jQuery 对象中的元素数目。 |
jQuery扩展
1.前面的jquery写完是当页面全部加载完后,才执行的,如果有页面没有加载完,那么就不会执行下面的jquery;
所以 当页面框架加载完毕后,自动执行的方法:
$(function(){ $(...) })
2.设置自定义的jquery属性的方法
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <script src="jquery-1.12.4.js"></script> <script> $.extend({ 'namess':function () { return 'sb'; } }); var v =$.namess(); alert(v); // $.fn.extend({ // "namess":function () { // return "db"; // } // }); // var v =$("#i1").namess(); // alert(v); </script> </body> </html>
如果在设置自定义属性时,有全局变量出现,为了避免和其他的自定义属性的变量名一样,那么就需要把变量放入自执行函数里面
(function(){ var status = 1; // 封装变量 })(jQuery)
实例:
1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5 <title>Title</title> 6 <style> 7 .error{ 8 color: red; 9 } 10 </style> 11 </head> 12 <body> 13 14 <form action="t1.html" method="get" id="f1"> 15 <div><input type="text" /></div> 16 <div><input type="password" /></div> 17 <div><input type="text" /></div> 18 <div><input type="text" /></div> 19 20 <input type="submit" value="提交" /> 21 </form> 22 23 <script src="jquery-1.12.4.js"></script> 24 <script> 25 $(":submit").click(function () { 26 $(".error").remove(); 27 var flag=true; 28 29 $("#f1").find("input[type='text'],input[type='password']").each(function () { 30 var v =$(this).val(); 31 if(v.length<=0){ 32 flag=false; 33 var tag =document.createElement("span"); 34 tag.className ="error"; 35 tag.innerHTML="必填"; 36 $(this).after(tag); 37 } 38 }); 39 40 return flag; 41 }) 42 43 </script> 44 </body> 45 </html>
****************************** To Be Continue ****************************************