jQuery学习笔记
jQuery 是一个快速、简洁的 JS 框架,它封装 JS 中常用的功能代码,提供一种简便使用方式,优化HTML文档操作、事件处理、动画设计和 AJAX 请求
想要在页面上使用 jQuery 需要添加引用:https://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js
jQuery初体验
页面加载完成后执行 JS
1 2 3 4 5 6 7 8 9 10 <script > jQuery (function ( ){ console .log (123 ); }) </script >
jQuery 的简化写法
1 2 3 4 5 6 7 8 <script > $(function ( ){ console .log (123 ); }) </script >
替换 $ 符号
1 2 3 4 5 6 7 8 9 10 11 <script > console .log (jQuery); let JQ = jQuery; JQ (function ( ){ console .log (123 ); }) </script >
1 2 3 4 5 6 7 <script > let JQ = jQuery.noConflict (); JQ (function ( ){ console .log (123 ); }) </script >
选择器练习
认识选择器
1 2 3 4 5 6 7 8 9 <body > <p id ="p1" > P标签</p > </body > <script > window .onload = function ( ){ let p1 = document .getElementById ("p1" ); } </script >
但是这样写起来代码太长了,jQuery 为我们提供了强大的选择器,我们可以用过选择器来获取 DOM 节点
基本选择器
三大基本选择器
1 2 3 4 5 6 7 8 9 10 11 12 13 <body > <p id ="p1" > p标签</p > <div > div标签 </div > <span class ="sp" > span标签1</span > <span class ="sp" > span标签2</span > </body > <script > $(function ( ){ let p1 = $("#p1" ); let div = $("div" ); let span = $(".sp" ); }) </script >
编程式选择器
这里只简单写了几个常用的选择器,之后有用到的随时百度查
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 <body > <p > 1</p > <p > 2</p > <p > 3</p > <p id ="p4" > 4</p > <p > 5</p > <p > 6</p > <p > 7</p > </body > <script > $(function ( ){ let p = $("#p4" ); let p1 = p.next ("p" ); let p2 = p.nextAll ("p" ); let p3 = p.prev ("p" ); let p4 = p.prevAll ("p" ); let p5 = p.siblings ("p" ); }) </script >
层级选择器
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 <body > <div > div1</div > <div > div2</div > <div id ="div" > div3 <span > span1</span > <span > span2 <span > span2-1</span > <span > span2-2</span > </span > <span > span3</span > </div > <div > div3</div > <div > div4</div > </body > <script > $(function ( ){ let ojb1 = $("#div>span" ); let ojb2 = $("#div span" ); let ojb3 = $("#div+div" ); let ojb4 = $("#div~div" ); }) </script >
obj1:子选择器:选择当前标签的下一级标签 中所有符合条件的标签
ojb2:后代选择器:选择当前标签下所有标签 中符合条件的标签
ojb3:兄弟选择器:+ 表示选择同级后面第一个 符合条件的标签
ojb3:兄弟选择器:~ 表示选择同级后面所有 符合调钱的标签
常用的过滤选择器
当我们无法精准的获取到目标元素的时候,就可以使用过滤器进行操作
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 <body > <ul > <li > 12</li > <li > 34</li > <li > 56</li > <li > 78</li > <li > 90</li > </ul > </body > <script > $(function ( ){ let obj1 = $("li:first" ); let obj2 = $("li:last" ); let obj3 = $("li:even" ); let obj4 = $("li:odd" ); let obj5 = $("li:gt(2)" ); let obj6 = $("li:lt(2)" ); let obj7 = $("li:eq(2)" ); }) </script >
更多选择器
更多选择器我是记不过来了,这里只记录了几个比较常用的选择器,需要使用更多随时查询
https://blog.csdn.net/pseudonym_/article/details/76093261
元素操作
和 JS 一样,我们可以通过 jQuery 对象获取到这个标签的所有信息,而且比 JS 操作要便捷的多
一般元素操作
以这段 HTML 代码为例:
1 2 3 4 5 6 7 8 9 <body > <div id ="d1" title ="我是title" > 哎呦不错哦</div > <div id ="d2" > <span > </span > <span > <img src ="" /> </span > </div > </body >
获取操作
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 <script > $(function ( ){ let title = $("#d1" ).attr ("title" ); let text = $("#d1" ).text (); let text = $("#d1" ).html (); let children = $("#d2" ).children (); children.each (function ( ){ console .log (this ); }) children.each (function (index, item ){ console .log (index, item); }) }) </script >
修改操作
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 <script > $(function ( ){ $("#d1" ).attr ("title" , "哎呦不错哦" ); $("#d1" ).text ("<font color='red'>font标签/font>" ); $("#d1" ).html ("<font color='red'>font标签/font>" ); $("#d2" ) .children ().eq (1 ) .children ().eq (0 ) .prop ("src" , "/img/hello.jpg" ); }) </script >
删除操作
1 2 3 4 5 6 7 8 9 10 <script > $(function ( ){ $("#d1" ).removeAttr ("title" ); $("#d2" ).children ().eq (1 ).children ().eq (0 ).remove (); $("#d2" ).empty (); }) </script >
添加操作
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 <script > let JQ = jQuery; JQ (()=> { JQ ("#d1" ).remove (); let span = JQ ("#d2" ).children ().eq (0 ); span.text ("【原始的span】" ); span.append (JQ ("<button>追加到span内部</button>" )); JQ ("<button>被追加到span内部</button>" ).appendTo (span); span.prepend (JQ ("<button>从前面添加到内部</button>" )); JQ ("<button>从前面被添加到内部</button>" ).prependTo (span); span.after (JQ ("<p>追加到span后面</p>" )); JQ ("<p>被追加到span后面</p>" ).insertAfter (span); span.before (JQ ("<p>添加到span前面</p>" )); JQ ("<p>被添加到span前面</p>" ).insertBefore (span); }) </script >
这里需要注意的是,添加到内部和添加到同级的方法,他们的顺序是相反的
样式操作
1 2 3 4 5 6 7 8 9 10 11 <script > $(()=>{ let d1 = $("#d1" ); d1.css ("color" , "red" ); console .log (d1.css ("color" )); console .log ("width" , d1.width ()); console .log ("height" , d1.height ()); }) </script >
除开这种方式我们还可以通过 jQuery 的 attr
或者 prop
函数来动态修改标签的 class 来达到修改样式的目的
方法名
作用
$(“#id”).attr(“class”, “样式”)
为该标签重新设置样式
$(“#id”).addClass(“样式”)
在原有的 class 基础上追加新的 class
$(“#id”).removeClass(“样式”)
在原有的 class 基础上移除指定的 class
$(“#id”).removeClass()
该方法在不写参数的情况下将移除所有 class
$(“#id”).hasClass(“样式”)
该标签是否包含指定的 class 样式
其他操作
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 <script > $(()=>{ let d1 = $("#d1" ); d1.after (d1.clone ()); d1.after (d1.clone (true )); let d2 = $("#d2" ); d2.replaceWith ($("<font id='font' color='blue'>我来替换这个标签</font>" )); $("<font color='red'>这里在替换一次</font>" ).replaceAll ($("#font" )) }) </script >
表单元素操作
之前联系了普通标签的一些操作,然后来练习一下基于 form 表单中的标签的操作
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 <body > <form id ="form" > <input type ="hidden" name ="id" value ="123" > 姓名:<input type ="text" name ="username" /> <br /> 账号:<input type ="text" name ="account" /> <br /> 密码:<input type ="password" name ="password" /> <br /> 性别: <input type ="radio" name ="gender" value ="男" /> 男 <input type ="radio" name ="gender" value ="女" /> 女 <br /> 爱好: <input type ="checkbox" name ="likes" value ="游泳" /> 游泳 <input type ="checkbox" name ="likes" value ="健身" /> 健身 <input type ="checkbox" name ="likes" value ="卡拉OK" /> 卡拉OK <input type ="checkbox" name ="likes" value ="大保健" /> 大保健 <br /> 住址: <select name ="address" > <option > 北京</option > <option > 上海</option > <option > 广东</option > <option > 深圳</option > </select > </form > <br /> <button > 提交</button > </body >
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 <script > $(()=>{ let form = $("#form" ); form.attr ("action" , "http://www.baidu.com" ); form.attr ("method" , "post" ); let button = $("button" ).eq (0 ); button.click (()=> { let id = $("#form input[type='hidden']" ).val (); let name = $("#form input[type='text']" ).eq (0 ).val (); let accunt = $("#form input[type='text']" ).eq (1 ).val (); let password = $("#form input[name='password']" ).val (); let gender = $("#form input[name='gender']:checked" ).val (); let address = $("#form select>option:selected" ).val (); let likes = []; $("#form input[name='likes']:checked" ) .each ((index, item )=> likes.push ($(item).val ())); form.submit (); }) }) </script >
事件函数
特效和动画
DOM遍历
AJAX请求