定义
- jQuery 是一个 JavaScript 库。
- jQuery 极大地简化了 JavaScript 编程。
- jQuery是一个轻量级的"写的少,做的多"的JavaScript库。源码走这里
- jQuery产生的对象时jQuery独有的,只能自己调用
书写规范
基础语法: $(selector).action() 变量定义:var $variable = jQuery 对象 变量前并不强制加$符号,可以直观了解声明了一个jQuery对象
元素寻找
选择器(selector)
1、基本选择器
1
2
3
4
5
6
7
8
9
|
$(
"*"
)
// 选取所有元素
$(
"element"
)
// 选取标签名称的所有元素
$(
"#id"
)
// 选取id 属性指定的元素
$(
".class"
)
// 选取指定的 class 查找元素
$(
".calss,p,div"
)
// 选取多样
|
2、层级选择器
1
2
3
4
5
6
7
|
$(
".outer div"
)
// 后代选择器查找
$(
".outer>div"
)
// 子代选择器查找
$(
".outer+div"
)
// 通过毗邻查找,用的少。。只能往下找
$(
".outer~div"
)
// 自下找,不限制紧挨
|
3、属性选择器
1
2
3
|
$(
'[id="div1"]'
)
$(
'["alex="sb"][id]'
)
// 可双层属性选择
|
筛选器
1、基本筛选器
1
2
3
4
5
6
7
8
9
10
11
12
|
$(
'li:first'
)
//第一个元素
$(
'li:last'
)
//最后一个元素
$(
"tr:even"
)
//索引为偶数的元素,从 0 开始
$(
"tr:odd"
)
//索引为奇数的元素,从 0 开始
$(
"tr:eq(1)"
)
//给定索引值的元素
$(
"tr:gt(0)"
)
//大于给定索引值的元素
$(
"tr:lt(2)"
)
//小于给定索引值的元素
$(
":focus"
)
//当前获取焦点的元素
$(
":animated"
)
//正在执行动画效果的元素
|
2、表单筛选器
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
$(
":input"
)
// 匹配所有 input, textarea, select 和 button 元素
$(
":text"
)
// 所有的单行文本框
$(
":password"
)
// 所有密码框
$(
":radio"
)
// 所有单选按钮
$(
":checkbox"
)
// 所有复选框
$(
":submit"
)
// 所有提交按钮
$(
":reset"
)
// 所有重置按钮
$(
":button"
)
// 所有button按钮
$(
":file"
)
// 所有文件域
$(
"input:checked"
)
// 所有选中的元素
$(
"select option:selected"
)
// select中所有选中的option元素
// 如果select默认选中想要的值 $('select').val(1)
// 即默认选中值为1 option标签
// 如果想选中多个值呢???
// $('select').val([1,2,]) 放入一个数组即可
|
3、内容筛选器
1
2
3
4
|
$(
"div:contains('test')"
)
// 包含test文本的元素
$(
"td:empty"
)
// 不包含子元素或者文本的空元素
$(
"div:has(p)"
)
// 含有选择器所匹配的元素
$(
"td:parent"
)
// 含有子元素或者文本的元素
|
4、查找筛选器
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
$(
"div"
).children()
// 查找div下的所有儿子标签
$(
"div"
).find()
// 查找div下的所有后代标签
$(
"p"
).next()
// 紧邻p元素后的下一个同辈元素
$(
"p"
).nextAll()
// p元素之后所有的同辈元素
$(
"#test"
).nextUntil(
"#test2"
)
// id为"#test"元素之后到id为'#test2'之间所有的同辈元素(开区间)
$(
"p"
).prev()
// 紧邻p元素前的一个同辈元素
$(
"p"
).prevAll()
// p元素之前所有的同辈元素
$(
"#test"
).prevUntil(
"#test2"
)
// id为"#test"元素之前到id为'#test2'之间所有的同辈元素(开区间)
$(
"p"
).parent()
// 每个p元素的父元素
$(
"p"
).parents()
// 每个p元素的所有祖先元素,body,html
$(
"#test"
).parentsUntil(
"#test2"
)
// id为"#test"元素到id为'#test2'之间所有的父级元素(开区间)
$(
"div"
).siblings()
// 所有的同辈元素,不包括自己
$(
"p"
).hasClass(
"test"
)
// 查找p标签有class名字为test
|
更多选择器玩转
1
2
3
|
$(
"[href]"
)
// 选取带有 href 属性的元素
$(
"a[target='_blank']"
)
// 选取所有 target 属性值等于 "_blank" 的 <a> 元素
$(
"a[target!='_blank']"
)
// 选取所有 target 属性值不等于 "_blank" 的 <a> 元素
|
属性操作
1、基本属性操作
1
2
3
4
5
6
7
8
9
10
|
$(
"img"
).attr(
"src"
);
// 返回文档中所有图像的src属性值
$(
"img"
).attr(
"src"
,
"test.jpg"
);
// 设置所有图像的src属性
$(
"img"
).removeAttr(
"src"
);
// 将文档中图像的src属性删除
$(
"input[type='checkbox']"
).prop(
"checked"
,
true
);
// 选中复选框
$(
"input[type='checkbox']"
).prop(
"checked"
,
false
);
// 取消复选框
$(
"img"
).removeProp(
"src"
);
// 删除img的src属性
// attr与prop区别
// attr可以找到自定义的属性、prop只能找到固有的属性
|
2、class操作
1
2
3
4
|
$(
"p"
).addClass(
"test"
);
// 为p元素加上 'test' 类
$(
"p"
).removeClass(
"test"
);
// 从p元素中删除 'test' 类
$(
"p"
).toggleClass(
"test"
);
// 如果存在就删除,否则就添加
$(
"p"
).hasClass(
"test"
);
// 判断有没有 'test' 类,返回布尔值
|
3、标签文本text/html
1
2
3
4
5
6
|
$(
'p'
).html();
// 返回p元素的html内容
$(
"p"
).html(
"Hello <b>test</b>!"
);
// 设置p元素的html内容
$(
'p'
).text();
// 返回p元素的文本内容
$(
"p"
).text(
"test"
);
// 设置p元素的文本内容
$(
"input"
).val();
// 获取文本框中的值
$(
"input"
).val(
"test"
);
// 设置文本框中的内容
|
CSS操作
1、样式
1
2
3
4
|
$(
"p"
).css(
"color"
);
// 访问查看p元素的color属性
$(
"p"
).css(
"color"
,
"red"
);
// 设置p元素的color属性为red
$(
"p"
).css({
"color"
:
"red"
,
"background"
:
"yellow"
});
// 设置p元素的color为red,background属性为yellow(设置多个属性要用{}字典形式)
|
2、位置
1
2
3
4
5
6
7
8
|
$(
'p'
).offset()
// 元素在当前视口的相对偏移,Object {top: 122, left: 260}
$(
'p'
).offset().top
$(
'p'
).offset().left
$(
"p"
).position()
// 元素相对父元素的偏移,对可见元素有效,Object {top: 117, left: 250}
$(window).scrollTop()
// 获取滚轮滑的高度
$(window).scrollLeft()
// 获取滚轮滑的宽度
$(window).scrollTop(
'100'
)
// 设置滚轮滑的高度为100
|
3、尺寸
1
2
3
4
5
6
7
8
9
|
$(
"p"
).height();
// 获取p元素的高度
$(
"p"
).width();
// 获取p元素的宽度
$(
"p:first"
).innerHeight()
// 获取第一个匹配元素内部区域高度(包括补白、不包括边框)
$(
"p:first"
).innerWidth()
// 获取第一个匹配元素内部区域宽度(包括补白、不包括边框)
$(
"p:first"
).outerHeight()
// 匹配元素外部高度(默认包括补白和边框)
$(
"p:first"
).outerWidth()
// 匹配元素外部宽度(默认包括补白和边框)
$(
"p:first"
).outerHeight(
true
)
// 为true时包括边距
|
文档处理
1、内部插入
1
2
3
4
|
$(
"p"
).append(
"<b>nick</b>"
);
// 每个p元素内后面追加内容
$(
"p"
).appendTo(
"div"
);
// p元素追加到div内后
$(
"p"
).prepend(
"<b>Hello</b>"
);
// 每个p元素内前面追加内容
$(
"p"
).prependTo(
"div"
);
// p元素追加到div内前
|
2、外部插入
1
2
3
4
|
$(
"p"
).after(
"<b>nick</b>"
);
// 每个p元素同级之后插入内容
$(
"p"
).before(
"<b>nick</b>"
);
// 在每个p元素同级之前插入内容
$(
"p"
).insertAfter(
"#test"
);
// 所有p元素插入到id为test元素的后面
$(
"p"
).insertBefore(
"#test"
);
// 所有p元素插入到id为test元素的前面
|
3、替换
1
2
|
$(
"p"
).replaceWith(
"<b>Paragraph.</b>"
);
// 将所有匹配的元素替换成指定的HTML或DOM元素
$(
"<b>Paragraph.</b>"
).replaceAll(
"p"
);
// 用匹配的元素替换掉所有selector匹配到的元素
|
4、删除
1
2
3
|
$(
"p"
).empty();
// 删除匹配的元素集合中所有的子节点,不包括本身
$(
"p"
).remove([expr]);
// 删除所有匹配的元素,包括本身
$(
"p"
).detach();
// 删除所有匹配的元素(和remove()不同的是:所有绑定的事件、附加的数据会保留下来)
|
5、复制
1
2
|
$(
"p"
).clone()
// 克隆元素并选中克隆的副本
$(
"p"
).clone(
true
)
// 布尔值指事件处理函数是否会被复制
|
循环
jQuery实现的数组循环机制
1
2
3
4
5
6
7
8
9
10
|
// 以下俩种循环虽然看似一样, 但是还是有一些区别的
// 方式一 遍历数据时,通常用
$.each(Array,
function
() {
})
// 方式二 遍历DOM时, 通常用
$(element).each(
function
() {
})
|
事件
1、事件
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
$(
"p"
).click();
// 单击事件
$(
"p"
).dblclick();
// 双击事件
$(
"input[type=text]"
).focus()
// 元素获得焦点时,触发 focus 事件
$(
"input[type=text]"
).blur()
// 元素失去焦点时,触发 blur事件
$(
"button"
).mousedown()
// 当按下鼠标时触发事件
$(
"button"
).mouseup()
// 元素上放松鼠标按钮时触发事件
$(
"p"
).mousemove()
// 当鼠标指针在指定的元素中移动时触发事件
$(
"p"
).mouseover()
// 当鼠标指针位于元素上方时触发事件
$(
"p"
).mouseout()
// 当鼠标指针从元素上移开时触发事件
$(window).keydown()
// 当键盘或按钮被按下时触发事件
$(window).keypress()
// 当键盘或按钮被按下时触发事件,每输入一个字符都触发一次
$(
"input"
).keyup()
// 当按钮被松开时触发事件
$(window).scroll()
// 当用户滚动时触发事件
$(window).resize()
// 当调整浏览器窗口的大小时触发事件
$(
"input[type='text']"
).change()
// 当元素的值发生改变时触发事件
$(
"input"
).select()
// 当input 元素中的文本被选择时触发事件
$(
"form"
).submit()
// 当提交表单时触发事件
$(window).unload()
// 用户离开页面时
|
2、绑定方式
1
2
3
|
$(标签).事件(函数内容)
$(标签).bind(
"事件"
,函数名)
|
3、页面载入
1
2
3
4
5
6
7
8
9
10
|
// 当页面载入成功后再运行的函数事件
$(document).ready(
function
(){
......
});
// 简写
$(
function
() {
......
});
|
4、页面处理
1
2
3
4
5
6
7
8
9
10
11
12
|
// bind 为每个匹配元素绑定事件处理函数,绑定多个用{}。
$(
"p"
).bind(
"click"
,
function
(){
alert( $(
this
).text() );
});
$(menuF).bind({
"mouseover"
:
function
() {$(menuS).parent().removeClass(
"hide"
);},
"mouseout"
:
function
() {$(menuS).parent().addClass(
"hide"
);}
});
$(
"p"
).one(
"click"
, fun...)
// one 绑定一个一次性的事件处理函数
$(
"p"
).unbind(
"click"
)
// 解绑一个事件
|
5、页面委派
...
6、事件委托
1
2
3
4
5
6
7
8
9
|
$(
'ul'
).on(
"click"
,
"li"
,
function
() {
alert(999);
});
// 阐释...
// 通过它的上级(多层上级)事件委托,当点击这个标签时才会绑定事件
// 场景:
在页面不刷新的情况下添加一行数据,行数据有操作按钮,点击并无效果,那么通过事件委托便可以解决
|
7、event object
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
// 所有的事件函数都可以传入event参数方便处理事件
$(
"p"
).click(
function
(event){
alert(event.type);
//"click"
});
(evnet object)属性方法:
event.pageX
// 事件发生时,鼠标距离网页左上角的水平距离
event.pageY
// 事件发生时,鼠标距离网页左上角的垂直距离
event.type
// 事件的类型
event.which
// 按下了哪一个键
event.data
// 在事件对象上绑定数据,然后传入事件处理函数
event.target
// 事件针对的网页元素
event.preventDefault()
// 阻止事件的默认行为(比如点击链接,会自动打开新页面)
event.stopPropagation()
// 停止事件向上层元素冒泡
|
动画效果
1、基点
1
2
3
4
|
$(
"p"
).show()
// 显示隐藏的匹配元素
$(
"p"
).show(
"slow"
);
// 参数表示速度,("slow","normal","fast"),也可设置为毫秒
$(
"p"
).hide()
// 隐藏显示的元素
$(
"p"
).toggle();
// 切换 显示/隐藏
|
2、滑动
1
2
3
|
$(
"p"
).slideDown(
"1000"
);
// 用1000毫秒时间将段落滑下
$(
"p"
).slideUp(
"1000"
);
// 用1000毫秒时间将段落滑上
$(
"p"
).slideToggle(
"1000"
);
// 用1000毫秒时间将段落滑上,滑下
|
3、淡入淡出
1
2
3
4
|
$(
"p"
).fadeIn(
"900"
);
// 用900毫秒时间将段落淡入
$(
"p"
).fadeOut(
"900"
);
// 用900毫秒时间将段落淡出
$(
"p"
).fadeToggle(
"900"
);
// 用900毫秒时间将段落淡入,淡出
$(
"p"
).fadeTo(
"slow"
, 0.6);
// 用900毫秒时间将段落的透明度调整到0.6
|
4、回调函数
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
|
// 回调函数指什么 一个动作完成之后执行的一段代码
// DEMO
<!DOCTYPE html>
<html lang=
"en"
>
<head>
<meta charset=
"UTF-8"
>
<title>Title</title>
<script src=
"js/jquery-2.2.3.js"
></script>
<script>
$(document).ready(
function
(){
$(
"button"
).click(
function
(){
$(
"p"
).hide(1000,
function
(){
alert(
'动画结束'
)
})
// $("p").css('color','red').slideUp(1000).slideDown(2000)
})
});
</script>
</head>
<body>
<button>隐藏</button>
<p>helloworld helloworld helloworld</p>
</body>
</html>
|
扩展(插件机制)
此机制可扩展Jquery的方法或者定制一些其它的方法
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
|
<!DOCTYPE html>
<html lang=
"en"
>
<head>
<meta charset=
"UTF-8"
>
<title>Title</title>
<style>
a{
color:
#65ff9b;
}
</style>
</head>
<body>
<div>Hello World</div>
<input type=
"checkbox"
>
<input type=
"radio"
checked>
<script src=
"jquery-3.1.1.js"
></script>
<script>
// 方式一
$.extend({
Myprint:
function
(content) {
console.log(content)
}
});
$.Myprint(666);
// 方式2
$.fn.extend({
check:
function
() {
return
this
.each(
function
() {
this
.checked=
true
})},
uncheck:
function
() {
return
this
.each(
function
() {
this
.checked=
false
})}
});
$(
":checkbox"
).check();
$(
":radio"
).uncheck()
</script>
</body>
</html>
|
对象访问
1
2
3
4
5
6
7
8
9
10
11
12
|
$.trim()
// 去除字符串两端的空格
$.each()
// 遍历一个数组或对象,for循环
$.inArray()
// 返回一个值在数组中的索引位置,不存在返回-1
$.grep()
// 返回数组中符合某种标准的元素
$.extend()
// 将多个对象,合并到第一个对象
$.makeArray()
// 将对象转化为数组
$.type()
// 判断对象的类别(函数对象、日期对象、数组对象、正则对象等等
$.isArray()
// 判断某个参数是否为数组
$.isEmptyObject()
// 判断某个对象是否为空(不含有任何属性)
$.isFunction()
// 判断某个参数是否为函数
$.isPlainObject()
// 判断某个参数是否为用"{}"或"new Object"建立的对象
$.support()
// 判断浏览器是否支持某个特性
|
jQuery拾遗
hover()
// 语法
$(selector).hover(inFunction,outFunction)
// 等同于
$( selector ).mouseover( handlerIn ).mouseout( handlerOut );
参数 描述
inFunction 必需。规定 mouseover 事件发生时运行的函数。
outFunction 可选。规定 mouseout 事件发生时运行的函数。
// DEMO
$("p").hover(function(){
$("p").css("background-color","yellow");
},function(){
$("p").css("background-color","pink");
});
data()
<html> <head> <script type="text/javascript" src="/jquery/jquery.js"></script> <script type="text/javascript"> $(document).ready(function(){ $("#btn1").click(function(){ $("div").data("greeting", "Hello World"); }); $("#btn2").click(function(){ alert($("div").data("greeting")); }); }); </script> </head> <body> <button id="btn1">把数据添加到 div 元素</button><br /> <button id="btn2">获取已添加到 div 元素的数据</button> <div></div> </body> </html>
实例
1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5 <title>Title</title> 6 <style> 7 *{ 8 margin: 0; 9 padding: 0; 10 } 11 12 .HA,.HE{ 13 height: 900px; 14 } 15 .HA{ 16 background-color: #8aab30; 17 } 18 .HE{ 19 background-color: #99aecb; 20 } 21 .go_top{ 22 display: inline-block; 23 position: fixed; 24 right: 30px; 25 bottom: 50px; 26 width: 39px; 27 height: 39px; 28 background: url("go_top.png") 0 78px; 29 } 30 31 .go_top:hover{ 32 background: url("go_top.png") 0 39px; 33 } 34 .hide{ 35 display: none; 36 } 37 38 </style> 39 40 </head> 41 <body> 42 <div class="HA"></div> 43 <div class="HE"></div> 44 <a class="go_top hide" title="返回顶部"></a> 45 46 <script src="jquery-3.1.1.js"></script> 47 <script> 48 window.onscroll = function () { 49 var xyz = $(window).scrollTop(); 50 console.log(xyz); 51 if (xyz>100){ 52 $(".go_top").removeClass("hide"); 53 }else { 54 $(".go_top").addClass("hide"); 55 } 56 }; 57 58 $(".go_top").click(function () { 59 $('body,html').animate({scrollTop:0},1000); 60 }) 61 62 </script> 63 </body> 64 </html>
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <style> *{ margin: 0; padding: 0; } .square:hover{ background-color: black; opacity: 0.7; } #play_img{ height: 340px; width: 790px; position: absolute; left: 280px; top: 100px; } li{ display: inline-block; list-style: none; } .hide{ display: none; } /*圆形按钮渲染*/ .round_click{ width: 180px; height: 20px; position: absolute; border-radius: 12px; bottom: 20px; left: 300px; background-color: hsla(0,0%,100%,.3); } .round_click span{ display: inline-block; width: 12px; height: 12px; border-radius: 12px; margin-right: 2px; margin-left: 2px; background-color: white; } .round_click .round_item{ margin-left: 10px; } .round_click .round_item_a{ background-color: red; } /*方形框按钮渲染*/ .square{ width: 30px; height: 60px; position: absolute; bottom: 140px; background-color: rgba(0,0,0,.1); } .click_right{ right: 0; } </style> </head> <body> <div id="play_img"> <ul> <li class=""><img src="photo/1.png" alt=""></li> <li class="hide"><img src="photo/2.jpg" alt=""></li> <li class="hide"><img src="photo/3.jpg" alt=""></li> <li class="hide"><img src="photo/4.jpg" alt=""></li> <li class="hide"><img src="photo/5.jpg" alt=""></li> <li class="hide"><img src="photo/6.jpg" alt=""></li> <li class="hide"><img src="photo/7.jpg" alt=""></li> <li class="hide"><img src="photo/8.jpg" alt=""></li> </ul> <div class="round_click"> <span class="round_item round_item_a"></span> <span class=""></span> <span class=""></span> <span class=""></span> <span class=""></span> <span class=""></span> <span class=""></span> <span class=""></span> </div> <div class="square click_left"></div> <div class="square click_right"></div> </div> <script src="jquery-3.1.1.js"></script> <script> var $photos = $("ul li"); // 获取图片数组 var $button = $(".round_click span"); // 获取按钮数组 var i = 0; // 定义变量 // 右击框事件 $(".click_right").bind("click",carousel); // 左击框事件 $(".click_left").bind("click",leftMove); // 鼠标悬浮于圆形按钮上方事件 $button.bind("mouseover",mouseHover); // 自动轮播 var s = setInterval(carousel,1000); // 右击框 function carousel() { i++; if (i==$photos.length){ i = 0; $photos.eq(i).removeClass("hide"); } $photos.eq(i-1).addClass("hide").next().removeClass("hide"); $button.eq(i).addClass("round_item_a").siblings().removeClass("round_item_a") } // 左击框 function leftMove() { // 若按钮触发的图片定位,使用if判断进行操作标签 if (i>0){ $photos.eq(i).addClass("hide").prev().removeClass("hide"); $button.eq(i-1).addClass("round_item_a").siblings().removeClass("round_item_a"); i--; }else { i = 7; $photos.addClass("hide"); $photos.eq(i).removeClass("hide"); $button.eq(0).removeClass("round_item_a"); $button.eq(i).addClass("round_item_a"); } } // 圆按钮点击事件 /*$button.click(function () { var $index = $(this).index(); i = $index; $photos.eq($index).removeClass("hide").siblings().addClass("hide"); $button.eq($index).addClass("round_item_a").siblings().removeClass("round_item_a") });*/ // 鼠标位于元素圆按钮上方触发 function mouseHover() { var $index = $(this).index(); i = $index; $photos.eq($index).removeClass("hide").siblings().addClass("hide"); $button.eq($index).addClass("round_item_a").siblings().removeClass("round_item_a"); } // 鼠标悬浮和鼠标离开 $("#play_img").hover(function () { clearInterval(s); s = undefined; },function () { s = setInterval(carousel,1000); }) </script> </body> </html>
// offset() 方法设置或返回被选元素相对于文档的偏移坐标。 <!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8"> <title></title> </head> <body> <div style="border: 1px solid #ddd;width: 600px;position: absolute;"> <div id="title" style="background-color: black;height: 40px;color: white;"> <strong style="padding-left: 300px;;line-height: 40px">标题</strong> </div> <div style="height: 300px;"> 内容...... </div> </div> <script type="text/javascript" src="jquery-3.1.1.js"></script> <script> $(function () { $('#title').mouseover(function () { $(this).css('cursor','move'); }).mousedown(function (e) { var _event = e || widows.event; var old_x = _event.clientX; var old_y = _event.clientY; var parent_left = $(this).parent().offset().left; var parent_top = $(this).parent().offset().top; $(this).bind('mousemove',function (e) { var _new_event = e || window.event; var new_x = _new_event.clientX; var new_y = _new_event.clientY; var x = parent_left + (new_x - old_x); var y = parent_top + (new_y - old_y); $(this).parent().css('left',x+'px'); $(this).parent().css('top',y+'px'); }) }).mouseup(function () { $(this).unbind('mousemove'); }); }) </script> </body> </html> 拖动面板 面板拖动
<head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <div class="HE"> <div class="HA"> <button οnclick="add(this)">+</button> <input type="text"> </div> </div> <script src="jquery-3.1.1.js"></script> <script> // 添加文本框 function add(self) { var $add_ele = $(self).parent().clone(); // 修改子文本框html内容 var $remove_ele = $add_ele.children("button").html("-"); // attr() 方法设置或返回被选元素的属性和值。 $remove_ele.attr("onclick","remove_self(this)"); $(".HE").append($add_ele) } // 删除文本框 function remove_self(self) { $(self).parent().remove(); } </script> </body> </html>
// 在线进入编辑模式,样式还是可以调整的更加好看一些的 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <style> .edited{ width: 100px; height: 30px; line-height: 30px; background-color: #b3b3b3; text-align: center; } .editting{ background-color: #f0ad4e; } a{ text-decoration: none; } </style> </head> <body> <div id="editbtn" class="edited"> <a href="#">进入编辑模式</a> </div> <p></p> <table border="1"> <thead> <tr> <th>蔬菜</th> <th>水果</th> </tr> </thead> <tbody id="tb"> <tr> <td>黄瓜</td> <td>香蕉</td> </tr> <tr> <td>胡萝卜</td> <td>椰子</td> </tr> </tbody> </table> <script src="js/jquery-2.1.4.min.js"></script> <script> $(document).ready(function () { bindReady(); }); function bindReady() { $('#editbtn').bind('click', function () { if ($(this).hasClass('editting')){ $('#tb').find('tr').find('td').each(function () { var new_text = $(this).find('input').val(); $(this).text(new_text) }); $(this).removeClass('editting'); $(this).find('a').text('进入编辑模式'); }else { $('#tb').find('tr').find('td').each(function () { var text = $(this).text(); var temp = "<input type='text' value='"+ text +"'>"; $(this).html(temp) }); $(this).addClass('editting'); $(this).find('a').text('退出编辑模式') } }) } </script> </body> </html>
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <button class="btn1">Toggle</button> <p>This is a Toggle.</p> <script src="jquery-3.1.1.js"></script> <script> $(document).ready(function(){ $(".btn1").click(function(){ $("p").toggle(1000, function () { console.log(1) }); }); }); </script> </body> </html>