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请求