JQuery 是一个兼容多浏览器支持的JavaScript库,其核心理念是write less,do more(写得更少,作得更多),它是轻量级的js库,兼容CSS3还兼容各类浏览器,须要注意的是后续版本将再也不支持IE6/7/8浏览器,jQuery使用户能更方便地处理HTML、events、实现动画效果,而且方便地为网站提供AJAX交互,jQuery还有一个比较大的优点是,它的文档说明很全,并且各类应用也说得很详细,同时还有许多成熟的插件可供选择,jQuery可以使用户的html页面保持代码和html内容分离,也就是说,不用再在html里面插入一堆js来调用命令了,只须要定义id便可,在后续的开发工做中咱们常常会用到JQuery框架,你也可以在各类的网页结构中发现它的身影.javascript
JQuery 选择器是JQuery框架的基础,JQuery对事件处理,DOM操做,CSS动画等都是在选择器基础上进行的,JQuery选择器采用CSS和Xpath选择符的能力,可以知足用户在DOM中快速获取元素或元素组,在JQuery中经过各类选择器和方法获取的结果集合实际上都是一个JQuery对象,经过JQuery对象会很是简单,便可实现对元素的各类操做,这里咱们介绍几个最经常使用的选择器例子.css
ID选择器: 经过使用简单的$(#id)
标识前缀,实现快速匹配指定ID的元素对象,具体用法以下.html
<body> <div id="1000"> hello lyshark </div> <div id="2000"> hello lyshark </div> <div id="3000"> hello lyshark </div> <script src="js/jquery-3.3.1.min.js" type="text/javascript"></script> <script type="text/javascript"> $("#2000").css("background","red"); //经过ID号选择指定元素 var temp = $("#1000").text(); //获取到文本的内容 document.write("文本内容: " + temp); //打印出这个文本的内容 </script> </body>
标签选择器: 经过使用$("element")
标识前缀,匹配页面中全部P标签,并设置成红色.前端
<body> <div id="1000"> hello lyshark </div> <p id="2000"> hello p</p> <div id="3000"> hello lyshark </div> <p id="4000"> hello p</p> <script src="js/jquery-3.3.1.min.js" type="text/javascript"></script> <script type="text/javascript"> $("p").css("background","red"); //经过p标签订位修改全部P标签 </script> </body>
类选择器: 经过使用$("ClassName")
标识前缀,匹配页面中全部class="MyClass"
的类属性.java
<body> <div class="MyClass"> hello lyshark </div> <div class="MyClass"> hello lyshark </div> <div class="lyshark"> hello lyshark </div> <script src="js/jquery-3.3.1.min.js" type="text/javascript"></script> <script type="text/javascript"> $(".MyClass").css("background","green"); //经过.MyClass找到一类属性并修改 </script> </body>
通配符选择器: 经过使用$("body*")
标识前缀,匹配页面中全部开头是div
的标签,并设置成绿色.jquery
<body> <div class="MyClass"> hello lyshark </div> <div class="MyClass"> hello lyshark </div> <h1 class="lyshark"> hello lyshark </h1> <div class="lyshark"> hello lyshark </div> <script src="js/jquery-3.3.1.min.js" type="text/javascript"></script> <script type="text/javascript"> $("div*").css("background","green"); //修改全部div标签的属性 </script> </body>
组合选择器: 使用组合选择器能够扩大选择器的选择范围,能够经过逗号分隔符分割多个不一样的选择器.编程
<body> <h1 class="MyClass"> hello lyshark </h1> <div class="MyClass"> <div id="MyID1">hello MyID1 </div> <div id="MyID2">hello MyID2 </div> </div> <div id="lyshark"> hello lyshark </div> <script src="js/jquery-3.3.1.min.js" type="text/javascript"></script> <script type="text/javascript"> $(".MyClass #MyID1 , h1 , #lyshark").css("background","green"); </script> </body>
属性选择器: 根据元素的属性及其值做为过滤条件,来匹配DOM元素,它以中括号做为分界符.浏览器
<body> <input type="text" name="Text" value="标签1"> <input type="password" name="Text"> <p id="id1"> hello P </p> <p id="id2" alex="sb"> hello P </p> <script src="js/jquery-3.3.1.min.js" type="text/javascript"></script> <script type="text/javascript"> $("input[type='text']").css("color","red"); //修改input,且类型是text的标签 $("p[id='id1']").text("修改id1的标题"); //修改标题,是p标签且id=id1的 $("input[name='Text']").val("修改为我"); //将标签中的value属性修改掉 $("p[alex='sb']").css("background","red"); //也能够自定义查找标签 </script> </body>
后代选择器: 该选择器经常使用于批量修改,匹配全部的后代,全部选中的DIV标签后代都会应用变化.app
<body> <div class="MyClass"> <div class="div1"> hello div div1</div> <div class="div2"> <div class="divA">hello div A</div> <div class="divA">hello div B</div> </div> </div> <script src="js/jquery-3.3.1.min.js" type="text/javascript"></script> <script type="text/javascript"> $(".MyClass div").css("background","green"); //修改指定.MyClass下的全部DIV标签 </script> </body>
子代选择器: 子代选择器经常使用于缩小查询范围,在匹配的父元素下,选择全部匹配的子元素.框架
<body> <div class="MyClass"> <div class="div1"> hello div div1</div> <div class="divA">hello div A</div> <div class="div2"> <div class="divA">hello div A</div> <div class="divA">hello div B</div> </div> </div> <script src="js/jquery-3.3.1.min.js" type="text/javascript"></script> <script type="text/javascript"> $(".MyClass > .div2").css("background","green"); //修改.MyClass类里面的,div2的全部子元素 </script> </body>
相邻选择器: 在全部匹配的元素后选择同级别相邻元素,以下匹配全部跟在.outer
后面的全部P标签,并设置成红色.
<body> <div class="outer"> <p class="outer"> hello p1</p> <p class="outer"> hello p2</p> <p class="outer"> hello p3</p> </div> <script src="js/jquery-3.3.1.min.js" type="text/javascript"></script> <script type="text/javascript"> $(".outer + p").css("color","red"); //匹配全部.outer类中,第一个p标签相邻的元素. </script> </body>
兄弟选择器: 兄弟选择器就是在全部匹配的元素后选择同级的全部元素,以下匹配.outer
类后面的全部同级DIV标签.
<body> <div class="outer"> hello div1</div> <div class="outer"> hello div2</div> <div class="outer"> hello div3</div> <script src="js/jquery-3.3.1.min.js" type="text/javascript"></script> <script type="text/javascript"> $(".outer~div").css("color","red"); //将属于outer类中的全部同级DIV设置成红色. </script> </body>
文档对象模型 (Document Object Model,DOM) 是一种W3C标准全部的现代浏览器都支持DOM,DOM用于HTML和XML文档的编程接口,它给文档提供了一种结构化的表示方法,能够改变文档的内容和呈现方式.最为关心的是,DOM把网页和脚本以及其余的编程语言联系了起来,DOM属于浏览器,而不是JavaScript语言规范里的规定的核心内容,下面咱们将使用JQuery函数库,对网页属性进行各类操做,如下是一些经常使用的操做方式,其余操做方式请自行百度.
Text(): 该函数经常使用于设置或者是读取标签里面的内容.
<body> <div class="MyDiv"> <div class="MyName"> hello lyshark </div> <div class="MyAge"> age:22 </div> </div> <script src="js/jquery-3.3.1.min.js"></script> <script type="text/javascript"> var temp = $(".MyDiv .MyName").text(); //查找指定的标签元素内容 document.write("获取到标签的内容: " + temp); $(".MyAge").text("hello world"); //修改指定的标签元素内容 </script> </body>
html(): 该函数经常使用于设置或者是读取标签内容,可是能够在设置标签内容的同时添加格式属性.
<body> <div class="MyDiv"> <div class="MyName"> hello lyshark </div> <div class="MyAge"> age:22 </div> </div> <script src="js/jquery-3.3.1.min.js"></script> <script type="text/javascript"> var temp = $(".MyDiv .MyName").html(); //查找指定的标签元素内容 document.write("获取到标签的内容: " + temp); $(".MyAge").html("<b> hell html </b>"); //修改指定的标签元素内容 </script> </body>
val(): 用于获取或者是设置指定标签的value
值.
<body> <div class="MyDiv"> <input type="text" name="MyText1" value="标签1"> <input type="text" name="MyText2" value="标签2"> </div> <script src="js/jquery-3.3.1.min.js"></script> <script type="text/javascript"> var data = $("input[name='MyText1']").val(); //定位并获取文本的value选项 document.write("获取到文本name属性的值: " + data); $("input[name='MyText2']").val("lyshark"); //修改文本的value属性为lyshark </script> </body>
append(): 给指定的标签添加内容,分别能够在开头插入$().prepend
,结尾插入$().append
等.
<body> <div class="MyDiv"> hello lyshark ---></div> <script src="js/jquery-3.3.1.min.js"></script> <script type="text/javascript"> $(".MyDiv").append("结尾加入"); //在标签结尾插入新数据 $(".MyDiv").prepend("开头加入"); //在标签开头插入新输入 $(".MyDiv").prepend("<b> hello </b>"); //开头插入带格式的文本 </script> </body>
appendTo(): 该函数能够实现将外部的标签插入到一个块级标签里面,动态添加元素.
<body> <div class="MyDiv"> <h1 id="Myh1"> hello h1</h1> </div> <p> hello p1</p> <p> hello p2</p> <script src="js/jquery-3.3.1.min.js"></script> <script type="text/javascript"> $("p").appendTo("div"); //将p标签加入到div标签里面 $("p").appendTo("div"); $("div").prependTo("h1") </script> </body>
empty()/remove(): 使用empty()
能够清空标签中的内容,remove()
用于完全移除标签.
<body> <p class="p1"> hello p1</p> <p class="p2"> hello p2</p> <script src="js/jquery-3.3.1.min.js"></script> <script type="text/javascript"> $(".p1").empty(); $(".p2").empty(); //清空标签内的内容. $(".p2").remove(); //完全移除标签. </script> </body>
before()/after(): 能够实如今指定标签的上方(.before)
插入内容,或者下(.after)
方插入内容.
<body> <div class="MyDiv"> <div class="div1"> hello div </div> </div> <script src="js/jquery-3.3.1.min.js"></script> <script type="text/javascript"> $(".MyDiv div").before("<h1> before </h1>") //在div上方插入内容 $(".MyDiv div").after("<h1> after </h1>") //在div下方插入内容 </script> </body>
insertBefore()/insertAfter(): 在每一个DIV标签前面(insertBefore)
插入新标签,或者在后面(insertAfter)
插入.
<body> <div class="MyDiv"> hello div</div> <script src="js/jquery-3.3.1.min.js"></script> <script type="text/javascript"> $("<span> hello span </span>").insertBefore("div"); //在div前面插入span标签 $("<h1> hello h1</h1>").insertAfter("div"); //在每一个div标签后面插入h1 </script> </body>
replaceWith(): 查找与替换,将全部的类属性是class=".MyDiv"
的标签替换成粗体的hello div
.
<body> <div class="MyDiv"> hello div1 </div> <div class="MyDiv"> hello div2 </div> <script src="js/jquery-3.3.1.min.js"></script> <script type="text/javascript"> $(".MyDiv").replaceWith("<b> hello div </b>"); //将全部div标签替换成粗体的hello div </script> </body>
clone: 克隆并追加一个DIV标签,追加到body页面中.
<body> <div class="MyDiv"> hello div1 </div> <script src="js/jquery-3.3.1.min.js"></script> <script type="text/javascript"> $("body").append($("div").clone()); //克隆并追加到body中. $("body").append($("div").clone()); </script> </body>
attr(): 可实现获取和设置,指定标签的属性信息.
<body> <div class="MyDiv"> <input type="text" name="MyText1" value="标签1"> <input type="text" name="MyText2" value="标签2"> </div> <script src="js/jquery-3.3.1.min.js"></script> <script type="text/javascript"> var names = $("input[name='MyText2']").attr("name"); //获取MyText2标签的name字段内容 var types = $("input[type='text']").attr("type"); //获取Type标签的type字段内容 document.write("标签name字段内容: " + names + "<br>"); document.write("标签type字段内容: " + types + "<br>"); $("input[name='MyText2']").attr("name","lyshark"); //将MyText2标签的name字段修改为lyshark </script> </body>
removeAttr(): 找到指定的字段并能够自定义移除相关字段.
<body> <input type="text" name="MyText" value="标签1"> <script src="js/jquery-3.3.1.min.js"></script> <script type="text/javascript"> var data = $("input[name='MyText']").attr("value"); //找到value字段的内容 document.write("当前value值: " + data); $("input[name='MyText']").removeAttr("value"); //移除value字段的内容 </script> </body>
prop(): 设置标签的属性,经常使用于设置单选框和复选框.
<body> <input type="checkbox" name="check"> <script src="js/jquery-3.3.1.min.js"></script> <script type="text/javascript"> var data = $("input[name='check']").prop("checked"); //获取checkbox默认状态 document.write("选择框默认状态:" + data) $("input[name='check']").prop("checked",true); //设置checkbox为选中状态 $("input[name='check']").prop("disabled",true); //设置checkbox为禁用状态 </script> </body>
removeprop: 删除由prop设置的属性集,(不明白)
<body> <input type="checkbox" name="check"> <script src="js/jquery-3.3.1.min.js"></script> <script type="text/javascript"> $("input[name='check']").prop("disabled",true); $("input[name='check']").removeProp(""); </script> </body>
addClass(): 动态的将一个CSS属性添加到一些标签中.
<head> <style type="text/css"> .mode{ background-color: #17a2b8; } </style> </head> <body> <div class="MyClass"> hello lyshark </div> <div class="MyClass"> hello lyshark </div> <script type="text/javascript"> $(".MyClass").addClass("mode"); //对全部的MyClass标签,添加mode的属性. </script> </body>
removeClass: 动态的将一个CSS属性在标签中删除.
<head> <style type="text/css"> .mode{ background-color: #17a2b8; } </style> </head> <body> <div class="mode"> hello lyshark </div> <div class="mode"> hello lyshark </div> <script src="js/jquery-3.3.1.min.js"></script> <script type="text/javascript"> $("div").removeClass("mode"); //删除全部div标签中的mode类属性. </script> </body>
toggleClass: 实现了动态的切换类的样式.使标签不可见.
<style type="text/css"> .show{ background-color: #17a2b8; } .hidden{ display: none; } </style> </head> <body> <div class="mode"> hello lyshark </div> <script src="js/jquery-3.3.1.min.js"></script> <script type="text/javascript"> $("div").toggleClass("hidden"); //切换成隐藏属性 </script> </body>
hasClass(): 该函数用来判断当前的样式,存在返回真,不存在返回假.
<style type="text/css"> .mode{ background: red; } </style> </head> <body> <div class="mode"> hello lyshark </div> <script src="js/jquery-3.3.1.min.js"></script> <script type="text/javascript"> var data = $("div").hasClass("mode"); document.write(data) </script> </body>
修改CSS属性:
<body> <div class="MyClass1" style="background-color: rebeccapurple"> hello lyshark</div> <div class="MyClass2" style="font-size: 30px"> hello lyshark</div> <script src="js/jquery-3.3.1.min.js"></script> <script type="text/javascript"> $(".MyClass1").css("background-color","red"); //修改MyClass1的背景属性 $(".MyClass2").css("font-size","10px"); //修改MyClass2的字体大小 </script> </body>
追加CSS属性:
<body> <div class="MyClass1"> hello lyshark</div> <script src="js/jquery-3.3.1.min.js"></script> <script type="text/javascript"> $(".MyClass1").css({"background-color":"red","font-size":"20px"}); </script> </body>
jQuery 提供了两种选择文档元素的方式:选择器和筛选器,选择器主要模仿CSS和xPath语法,提供高效、准确匹配元素的通常方法和用法,而筛选器是创建在选择器基础上进行的二次筛选,选择器是符合必定规律的字符串组合,而筛选器就是一系列简单、实用的JQuery方法,在 JQuery 框架中,筛选器经过Sizzle.filter
子类来实现,它包含过滤、杳找和串联,这里咱们只举几个经常使用例子.
first()/last(): first()
筛选出全部li标签中第一个标签,last()
筛选出全部标签中的最后一个标签.
<body> <div class="MyClass"> <ul> <li>首页</li> <li>主机</li> <li>系统</li> </ul> </div> <script src="js/jquery-3.3.1.min.js"></script> <script type="text/javascript"> var data = $("li:first").text(); //找出第一个标签的标签内容 document.write("第一个标签内容是:" + data + "<br>"); var data = $("li:last").text(); //找出最后一个标签的标签内容 document.write("最后一个标签内容是:" + data + "<br>"); $("li:last").remove(); //实现移除最后一个标签 $("li:last").append("<li>添加</li>"); //实现添加一个新标签 </script> </body>
even()/odd(): even()
筛选出全部li标签中偶数标签,odd()
筛选出全部li标签中基数标签.
<body> <div class="MyClass"> <ul> <li>首页</li> <li>主机</li> <li>系统</li> <li>菜单</li> <li>搞事</li> </ul> </div> <script src="js/jquery-3.3.1.min.js"></script> <script type="text/javascript"> var data = $(".MyClass ul li:even").text(); document.write("基数标签为: " + data + "<br>"); var count = $(".MyClass ul li:even"); document.write("基数标签个数: " + count.length + "<br>"); var data = $(".MyClass ul li:odd").text(); document.write("偶数标签为: " + data + "<br>"); var count = $(".MyClass ul li:odd"); document.write("偶数标签个数: " + count.length); </script> </body>
eq(): 过滤出全部li标签中,索引是2的那个标签.
<body> <div class="MyClass"> <ul> <li>首页</li> <li>主机</li> <li>系统</li> <li>菜单</li> <li>搞事</li> </ul> </div> <script src="js/jquery-3.3.1.min.js"></script> <script type="text/javascript"> var data = $("li:eq(2)").text(); //全部li标签中,索引是2的标签 document.write("索引是2的标签内容是: " + data + "<br>"); var data = $("li:eq(0)").text(); //全部li标签中,索引是0的标签 document.write("索引是0的标签内容是: " + data + "<br>"); var data = $(".MyClass ul li").eq(4); //另外一种写法,结果相同. document.write("索引是4的标签内容是: " + data.text() + "<br>"); </script> </body>
gt(): 全部li标签中,索引大于2的标签
<body> <div class="MyClass"> <ul> <li>首页</li> <li>主机</li> <li>系统</li> <li>菜单</li> <li>搞事</li> </ul> </div> <script src="js/jquery-3.3.1.min.js"></script> <script type="text/javascript"> var data = $("li:gt(2)").text(); //全部li标签中,索引大于2的标签 document.write("索引大于2的标签内容是: " + data + "<br>"); </script> </body>
lt(): 全部li标签中,索引小于3的标签
<body> <div class="MyClass"> <ul> <li>首页</li> <li>主机</li> <li>系统</li> <li>菜单</li> <li>搞事</li> </ul> </div> <script src="js/jquery-3.3.1.min.js"></script> <script type="text/javascript"> var data = $("li:lt(3)").text(); //全部li标签中,索引小于3的标签 document.write("索引小于3的标签内容是: " + data + "<br>"); </script> </body>
hasclass(): 检测li中的是否含有某个特定的类,有的话返回true
<body> <div class="MyClass"> <ul class="lyshark"> <li>首页</li> <li>主机</li> <li>系统</li> <li>菜单</li> <li>搞事</li> </ul> </div> <script src="js/jquery-3.3.1.min.js"></script> <script type="text/javascript"> var data = $(".MyClass ul").hasClass("lyshark"); document.write(data); </script> </body>
children(): 获取指定标签的全部子标签,如下在类名为"MyForm"
盒子里,找全部div子标签,并将其设置为绿色.
<body> <form class="MyForm"> <div class="Mydiv"> hello lyshark </div> <div class="Mydiv"> hello lyshark </div> <p> hello lyshark </p> </form> <script src="js/jquery-3.3.1.min.js"></script> <script type="text/javascript"> $(".MyForm").children(".Mydiv").css("color","green"); </script> </body>
parent(): 获取指定标签的全部父标签,如下代码找全部P标签的父标签,并设置成红色.
<body> <div class="Mydiv"> hello lyshark <p> hello p </p> <p> hello p </p> </div> <script src="js/jquery-3.3.1.min.js"></script> <script type="text/javascript"> var data = $("p").parent().css("color","red"); </script> </body>
next(): 寻找指定标签的下一个标签,如下代码根据第1个Mydiv1为条件寻找下一个div.
<body> <div class="Mydiv1"> <p> hello p </p> </div> <div class="Mydiv2"> <p> hello p </p> </div> <script src="js/jquery-3.3.1.min.js"></script> <script type="text/javascript"> $("div").next().css("background","red"); $(".Mydiv1").next().css("background","red"); </script> </body>
prev(): 寻找指定标签的上一个标签,如下代码根据第2个Mydiv2为条件寻找上一个div.
<body> <div class="Mydiv1"> <p> hello p </p> </div> <div class="Mydiv2"> <p> hello p </p> </div> <script src="js/jquery-3.3.1.min.js"></script> <script type="text/javascript"> $(".Mydiv2").prev().css("background","red"); </script> </body>
siblings(): 查找标签的全部兄弟标签,查找全部的同辈标签.
<body> <div class="Mydiv1"> <div class="Min">hello div</div> </div> <div class="Mydiv2"> <div class="Min">hello div</div> </div> <script src="js/jquery-3.3.1.min.js"></script> <script type="text/javascript"> $(".Mydiv1").siblings().css("background","red"); </script> </body>
find(): 在form标签中找到text,password标签,并将其设置为绿色.
<body> <form class="forms" method="post"> <input type="text" value="用户名"> <input type="password" value="密码"> </form> <script src="js/jquery-3.3.1.min.js"></script> <script type="text/javascript"> $("form").find(":text,:password").css({"color":"red","background":"green"}) </script> </body>
事件是用户在操做浏览器的过程当中,由用户触发或由浏览器自身触发的动做,浏览器捕获这些动做,并根据用户编程时设置的对应这些动做的事件处理程序,触发相应的处理过程,从而实现交互过程,浏览器在程序运行的大部分时间都等待交互事件的发生,并在发生时,自动的调用事件处理函数完成整个处理过程,为了更好的兼容不一样类型的浏览器,JQuery在JavaScript的基础上,进一步封装了不一样类型的时间模型,从而造成一种功能强大,用法更加优雅的JQuery事件模型,下面个将具体介绍几种经常使用的用法.
注册单次事件: one()方法是bind()方法的特例,由它绑定的事件在执行一次相应后就会失效.
<body> <p id="MyP"> </p> <input type="button" id="MyID" value="添加内容" /> <script src="js/jquery-3.3.1.min.js"></script> <script type="text/javascript"> $("#MyID").one("click",function(){ $("p").append("hello lyshark"); //给P标签添加内容 }); </script> </body>
注册循环事件: bind()做为统一的接口,用来为每一个匹配元素绑定事件处理程序.
<body> <input type="button" id="MyID1" value="无参数绑定" /> <input type="button" id="MyID2" value="带参数绑定" /> <script src="js/jquery-3.3.1.min.js"></script> <script type="text/javascript"> $("#MyID1").bind("click",function(){ alert("绑定无参数的事件...") }); $("#MyID2").bind("click",{x:"参数1",y:"参数2"},function(event){ $(this).text(event.data.x + event.data.y); }); </script> </body>
绑定多个事件:
<body> <input type="button" id="MyID1" value="按钮1" /> <input type="button" id="MyID2" value="按钮2" /> <script src="js/jquery-3.3.1.min.js"></script> <script type="text/javascript"> $("#MyID1,#MyID2").click(function(){ var currentId = $(this).attr("id"); //获取它的ID名称 if(currentId == "MyID1"){ //说明点击了按钮1 alert("您点击了按钮1"); }else if(currentId == "MyID2"){ //说明点击了按钮2 alert("您点击了按钮2"); } }); </script> </body>
表单数据提交:
<body> <div class="MyDIV"> 姓名: <input type="text" id="input1" /> 性别: <input type="text" id="input2" /> 年龄: <input type="text" id="input3" /> <input type="button" id="button1"> </div> <script src="js/jquery-3.3.1.min.js"></script> <script type="text/javascript"> $("#button1").click(function(){ var name = $(".MyDIV #input1").val(); //获取到元素值 var sex = $(".MyDIV #input2").val(); var age = $(".MyDIV #input3").val(); alert("姓名: " + name + "性别: " + sex + "年龄: " + age); }); </script> </body>
回调函数:
<head> <script src="js/jquery-3.3.1.min.js"></script> <script type="text/javascript"> $(document).ready(function () { $("button").click(function () { $("p").hide(1000,call_back()); }) }); function call_back() { alert("回掉函数使用...") } </script> </head> <body> <button>隐藏</button> <p>hello lyshark</p> </body>
标签克隆:
<body> <div> <p> <a onclick="Add(this)">+</a> <input type="text"/> </p> </div> <script src="js/jquery-3.3.1.min.js"></script> <script> function Add(ths) { var p = $(ths).parent().clone(); p.find('a').text('-'); p.find('a').attr('onclick','Remove(this)'); $(ths).parent().parent().append(p); } function Remove(ths) { $(ths).parent().remove(); } </script> </body>
全选与反选:
<body> <div class="MyDiv"> <input type="checkbox"> <input type="checkbox"> <input type="checkbox"> <input type="checkbox"> <input type="button" value="全选" onclick="CheckAll()" /> <input type="button" value="取消" onclick="CancleAll()" /> <input type="button" value="反选" onclick="ReverseAll()" /> </div> <script src="js/jquery-3.3.1.min.js"></script> <script type="text/javascript"> function CheckAll() { $('.MyDiv input[type="checkbox"]').prop('checked',true); } function CancleAll() { $('.MyDiv input[type="checkbox"]').prop('checked',false); } function ReverseAll() { $('.MyDiv input[type="checkbox"]').each(function () { if($(this).prop('checked')){ $(this).prop('checked',false); }else{ $(this).prop('checked',true); } }); } </script> </body>