jQuery笔记 (完整详细版)

2023-10-27

2018.9.17 星期一

jQuery

第一章 初识jQuery
第二章 jQuery的事件和API
第三章 jQuery中的动画


第一章 初识jQuery

一、jQuery简介
1.什么是jQuery?

jQuery是一个优秀的JavaScript库,是一个凭借简洁的语法和跨平台的兼容性,极大地简化了JavaScript开发人员遍历HTML文档,操作DOM,执行动画和开发Ajax的操作。jQuery封装了很多预定义的对象和函数。其理念:write less,do more.

2.常见的javascript库?

      Prototype:是最早成型的JS库之一,对于JS的内置对象做了大量的扩展。
      Do jo:提供了很多奇特JS库没有提供的功能。例如:离线存储的API,生成图标的组件等等。
      YUI:是由Yahoo公司开发的一套完备的,扩展性良好的富交互网页程序工作集。
      Ext JS:原本是对YUI的一个扩展,主要用于创建前端用户界面。
      Moo Tools:是一套轻量、简洁、模拟化和面向对象的JS框架。
      jQuery:同样是一个轻量级的库,拥有强大的选择器等更多优点,吸引了更多开发者去学习使用它。

二、jQuery的特性
jQuery能做以下事情:

     HTML元素选取
     HTML元素操作
     CSS操作
     HTML事件函数
     JavaScript特效和动画
     HTML DOM遍历和修改
     AJAX
     Utilities

三、jQuery介绍
1.jQuery的使用方式
下载后引入

 <script src="jquery-3.3.1/jquery-3.3.1.min.js"></script>

2.编写简单的 HelloWorld

   <html>
       <head>
       <meta charset="UTF-8">
       <title>dom操作</title>
       <script src="jquery-3.3.1/jquery-3.3.1.min.js"></script>
       <script>
          $(function(){
             alert('Hello World');
          });
       </script>
       </head>
    </html>

3.jQuery函数
jQuery库只提供了一个叫jQuery的函数,该函数中以及该元素的原型中定义了大量的方法。jQuery函数具有四种参数:

      1)选择器(字符串)
         jQuery函数通过该选择器获取对应的DOM,然后将这些DOM封装到一个人jQuery对象中并返回。
         
      2)DOM对象(即Node实例)
          jQuery函数将该DOM封装成jQuery对象并返回。
          
      3)HTML文本字符串
          jQuery函数根据传入的文本创建好HTML元素并封装成jQuery对象并返回。
           $("<div class="one">one</div>");

      4)一个匿名函数    
          $(function(){});
          当文当加载完毕之后jQuery函数调用匿名函数。

4.jQuery对象

  jQuery对象是jQuery函数的一个实例,是一个类数组对象,数组中存放的是DOM对象,而DOM对象是Node的实例。
 
  对jQuery对象的操作实际上是对jQuery数组中的DOM对象的批量操作。jQuery对象和DOM对象可以相互转化。
  
  jQuery对象的获取通常是使用选择器来获取的。比如,获取所有clss为one元素:$(".one");

四、jQuery选择器
1.基本选择器:

   所有选择器  *
   标签选择器  标签名
   ID选择器    #id
   类选择器    .className
   群组选择器  .one,.two   多个选择器使用都好分隔,取并集
   复合选择器  .one.two   多个选择器组合使用,取交集

2.层次选择器:

   后代选择器   .one .two   
      两个选择器使用空格隔开,表示可以获取当前元素的子代以及孙子代等等后代元素。
   子代选择器   .one>.two
      两个选择器使用>隔开,表示只能获取当前选中元素的子代元素。

3.兄弟选择器:

   下一个兄弟选择器   .one+.two
      两个选择器使用+隔开,表示可以获取当前元素的下一个兄弟元素,下一个兄弟元素要能符合.two。
   之后所有子代选择器  .one~.two
      两个选择器使用~隔开,表示可以获取当前元素之后的所有兄弟元素,只有所有兄弟元素要能符合.two。

五、jQuery过滤器
jQuery的过滤器必须用在jQuery选择器后,表示对通过前面的jQuery选择器选择到的内容的过滤。是建立在前面选择器已经选择到的元素的基础之上。 语法:selector:过滤器

1.基本过滤器:

  selector:first  获取所有已选择到的元素中的第一个元素
  selector:last   获取所有已选择到的元素中的最后一个元素
  selector:even    获取所有已选择到的元素中的索引为偶数的元素
  selector:odd     获取所有已选择到的元素中的索引为奇数的元素
  selector:eq(index) 获取所有已选择到的元素中的索引为index的元素
  selector:lt(num)   获取所有已选择到的元素中的索引值小于num的元素
  selector:gt(num)   获取所有已选择到的元素中的索引值大于num的元素
  selector1:not(selector2)  获取所有已选择到的元素中的除了selector2的元素
  selector:header   获取所有已选择到的元素中的标题元素(h1~h6)    

2.内容过滤器:

  selector:contains(text) 
            获取所有已选择到的元素中文本包含text的元素
  selector:empty   
            获取所有已选择到的元素中的空元素(没有子节点)
  selector:parent  
            获取所有已选择到的元素中的非空元素(有子节点),如$("div:parent");
  selector1:has(selector2)  
            获取所有已选择到的元素中包含selector2的元素,如$("div:has('span')");

3.可见性过滤器:
隐藏类型分两种:

  1)不占据屏幕空间
        display:none;
        <input type="hidden">	
  2)占据屏幕空间
        visibility:hidden;
        opacity:0;//透明度为0
   使用:
      :visible   选择所有占据屏幕空间的元素
      :hidden    选择所有不占据屏幕空间的元素   

4.属性过滤器:

   selector[attrKey]  
           获取所有已选择到的元素中具有属性attrKey的元素
   selector[attrKey=attrVal]    
           获取所有已选择到的元素中具有属性attrKey,并且属性值为attrVal的元素
   selector[attrKey^=attrVal]  
           获取所有已选择到的元素中具有属性attrKey,并且属性值为以attrVal开头的元素
   selector[attrKey$=attrVal]  
           获取所有已选择到的元素中具有属性attrKey,并且属性值为以attrVal结尾的元素
   selector[attrKey*=attrVal]  
           获取所有已选择到的元素中具有属性attrKey,并且属性值为包含attrVal的元素
   selector[attrKey!=attrVal]  
           获取所有已选择到的元素中具有属性attrKey,并且属性值不为以attrVal的元素或者没有属性attrVal的元素

5.后代选择器:

   selector:nth-child(index)
       获取每个selector元素中索引为index的子元素。【注意】index从1开始
   selector:first-child
       获取每一个selector元素中的第一个子元素(每个父元素的第一个子元素)
   selector:last-child
       获取每一个selector元素中的最后一个子元素(每个父元素的最后一个子元素)
   selector:only-child
       获取每一个selector元素中的独生子子元素(每个父元素如果只有一个孩子元素,获取该元素)
   selector:first-of-type
       获取每个selector元素中每种类型子元素中的第一个
   selector:last-of-type
       获取每个selector元素中每种类型子元素中的最后一个

6.表单过滤器:

   :checked    选取所有被选中的元素,用于复选框、单选框、下拉框
   :selected   选取所有被选中的元素,该选择器只适用于<option>
   :focus   选取当前获取焦点的元素
   :text    选取所有的单行文本框(<input type="text">)
   :password  选取所有的密码框
   :input     选取所有的<input>,<textarea>,<select>,<button>元素。
       *注意,$(":input")是选中可以让用户输入的标签元素;而$("input")是选择名字为input的标签元素。*
   :enable   选取所有可用元素,该选择器仅可用于支持disable属性的html元素。(<button>,<input>,<optgruop>,<option>,<select>,<textarea>)
   :disable   选取所有不可用元素,该选择器也仅可用于支持disable属性的html元素。
   :radio      选取所有的单选框
   :checkbox   选取所有的多选框
   :submit     选取所有的提交按钮
   :image      选取所有的input类型为image的表单元素
   :reset   选取所有的input类型为reset的表单元素
   :button  选取所有的input类型为button的表单元素
   :file    选取所有的input类型为file的表单元素

六、jQuery中的Dom操作
1.查找节点
通过jQuery选择器来完成

2.创建节点

  创建元素节点:var newTd = $("<td></td>")
  创建文本节点:var newTd = $("<td>文本内容</td>")

3.插入节点

  1) $A.append(B)
       将B追加到A的末尾处,作为它的最后一个子元素
  2) $A.appendTo(B)
       将A追加到B的末尾,作为它的最后一个子元素
  3) prepend() 
       $A.prependTo(B)
            将A追加到B的前面,作为它的第一个子元素
       $A.after(B)
            在A之后追加B,作为它的兄弟元素
       $A.insertAfter(B)
            在B之后追加A,作为它的兄弟元素
       $A.before(B)
            在A之前追加B,作为它的兄弟元素
       $A.insertBefore(B)
             在B之前追加A,作为它的兄弟元素

4.删除节点

   remove([selector])
       从DOM中删除所有匹配的元素,返回值是一个指向已经被删除的节点的引用,可以在以后再使用这些元素。
       该方法会移除元素,同时也会移除元素内部的一切,包括绑定的事件及与该元素相关的jQuery数据。
   detach([selector])
       与remove()类似,但是detach()保存所有jQuery数据和被移走的元素的相关联事件。
   empty()
       无参数。从DOM中清空集合中匹配元素的所有的子节点。

5.复制节点

 $("#id").clone(false);
  该方法返回的是一个节点的引用,参数默认为false,为浅复制;
  参数是true,为深复制,含义是:复制元素的同时复制元素中所绑定的事件。

6.替换节点

   replaceWith(newContent);
        用新内容替换集合中所有匹配的元素,并且返回被删除的元素的集合。
        该方法会删除与节点相关联的所有数据和事件处理程序。
   replaceAll(target);
        用集合的匹配元素替换每个目标元素。颠倒了replaceWith()操作效果。

7.包裹节点

   wrap([wrappingElement])
        在每个匹配的元素外层包上一个html元素
   warpAll([wrappingElement])
        将所有匹配的元素用一个元素来包裹,在所有匹配元素外面包裹一层HTML结构
   warpInner([wrappingElement])
        每个匹配元素里面内容(子元素)都会被这种结构包裹

8.节点遍历

   children([selector]) 
        用于取得匹配元素的子元素集合(只考虑子元素而不考虑任何后代元素)
      $('.content.inner')=>$('.content').children('.inner');  
   find(selector)
        在当前对象元素中的子元素查找,和参数所匹配的所有的后代元素
   next([selector])
        取得匹配的元素集合中每一个元素紧邻的后面兄弟元素
   nextAll([selector])
        查找当前元素之后所有的同辈元素
   prev([selector])
         取得匹配元素前面紧邻的兄弟元素
   prevAll([selector])
         取得当前元素之前所有的同辈元素
   silibinng([selector])
         取得匹配元素的前后所有的兄弟元素
   closest(selector)
         取得和参数匹配的最近的元素,如果匹配不上继续向上查找父元素
   filter(selector)
         把当前所选择的所有元素再进行筛选过滤
   parent([selector])
         取得匹配元素的集合中,每个元素的父元素
   parents([selector])
         获得集合中每个匹配元素的祖先元素

第二章 jQuery的事件和API

一、事件

   on()
      在选定的元素上绑定一个或多个事件处理函数。
   off()
      移除一个事件处理函数。
   trigger()
      根据绑定到匹配元素的给定的事件类型执行所有的处理程序和行为。

二、鼠标事件

   click()  单击
   dblclick()  双击
   hover()   悬停
   mousedown()  按下
   mouseup()  抬起
   mouseenter()  移入  不支持子元素
   mouseleave()  离开  不支持子元素 
   mouseout()   离开  支持子元素 
   mouseover()  进入  支持子元素 
   mousemove()  移动

三、键盘事件

   keypress()   按键按下
   keyup()   按键抬起
   keydown()   按键按下

四、表单事件

   focus()  聚焦事件
   blur()    失去焦点事件
   change()  当元素的值发生改变时激发的事件
   select()  当textarea或文本类型的input元素中的文本被选择时触发的事件
   submit()  表单提交事件,绑定在form上

五、jQuery中常用的API
1.jQuery中的html(),text(),val()方法

   html()
           无参:获取html的值
           有参数html:设置html的值

   text()
           无参:获取文本值
           有参数text:设置文本值
   val()
           无参:获取value的值
           有参数value:设置value的值

2.jQuery中的工具方法

   1) get();  //以数组的形式返回DOM节点。
        console.log($('div').get());
        
   2) toArray();  //返回一个包含jQuery对象结合中的所有DOM元素数组。
        console.log($('div').toArray());

   3) eq(index);  //返回index位置上的jQuery对象。
        console.log($('div').eq(1).get(0));

   4) filter(function(index,item){});   //过滤器函数,返回jQuery对象。
        var $result = $('div').filter(function(index,item){
        return index == 2;
      });
         
   5) map(function(index,item){});   //用于获取或设置元素集合中的值。
        var $result = $('div').map(function(index,item){
        return $(item).html()
      });
    
   6) each(function(index,item){});  //遍历一个jQuery对象。
          $('div').each(function(index,item){
        console.log(index,'--',item);
      });

   7) slice(0,3);  //截取
        var $result = $('div').slice(0,3);
      console.log($result.get());
   }); 

  8) not() 
  9) first()
  10) last()
  11) is()
  12) has()

3.jQuery中属性设置函数

   //获取属性值
       attr(key)
       prop(key)
    //删除属性   
       removeAttr(attributeName)
       removeProp(propertyName)
    //批量设置属性   
       css(key)
    //添加类   
       addClass(className)
    //判断有没有指定的类,有,返回true,否则返回false   
       hasClass(className)
    //删除类   
       removeClass(className)

第三章 jQuery中的动画

一、jQuery样式相关方法

宽度 = width + 2padding + 2border + 2margin

   //获取视口区的宽高:
   1、$(window).height()
   2、$(window).width()

   //获取内容区的宽高:
      $('div').width(); 
      $('div').height();

   //获取内容+padding区的宽高:
   3、$('div').innerHeight()
   4、$('div').innerWidth()

   //获取内容+padding+border区的宽高:
   5、$('div').outerHeight()
   6、$('div').outerWidth()

   //获取内容+padding+border+margin区的宽高: 
    $('div').outerWidth(true); 
    $('div').outerHeight(true);

   //获取相对于文档的偏移
   7、.offset()

   //获取相对于定位父元素的偏移
   8、.position()

   //横向滚动条左侧的偏移
   9、.scrollLeft()

   //横向滚动条上侧的偏移
   10、.scrollTop()

   //获取离它最近的父定位元素  
   11、.offsetParent()

二、效果

    1.基本效果
      1)隐藏 hide()
      2)显示 show()
      3)隐藏与显示 toggle()

    2.淡入淡出效果
      1)淡入  fadeIn()
      2)淡出  fadeOut()
      3)淡入到 fadeTo()
      4)淡入与淡出 fadeToggle()

    3.滑动效果
      1)滑下 slideDown()
      2)滑上 slideUp()
      3)滑上与滑下 slideToggle()

    4.自定义效果
      animate()      
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

jQuery笔记 (完整详细版) 的相关文章

  • 两个单独表格上的 Td 高度

    我有两个单独的表 我在每个 tr 上使用焦点 悬停函数 该函数同时在两个表上都很好用 我的问题是 td 高度 因为如果第一个表中 td 的描述更大 将显示在中的两行上相同的td和td的高度将被修改 但仅限于第一个表td 如何记住第一个表中
  • 解决错误 413 请求实体太大

    我正在从事的项目允许我们的员工将大文件上传到我们的共享主机并获取下载链接 问题是我们的托管拒绝更改共享托管的 LimitRequestBody 还有其他解决方案可以解决 LimitRequestBody 或任何其他方法来完成这项工作吗 有两
  • 使用 jQuery 的 AJAX 请求不起作用

    所以我是 jQuery 的新手 我正在尝试设置一个带有选项卡的 html 页面 每个选项卡应显示不同的 html 页面 如下所示 div a href page1 html div class tabdiv tabActive Page1
  • 我可以在 .split() 之后直接访问数组的第二个值吗?

    我有这个代码 var tmp this attr id split 我想将分割后的第二个值存储在 tmp 上 因此 如果 this attr id hello marco 我想在 tmp 中存储值 marco 而不是数组 当然 我想直接用一
  • 在 GeoJson 数据接收到的 Google 地图多边形上放置标签

    我想将带有信息的标签 或带有标签的 div 放在由下面的代码片段绘制的多边形上 样式属性已成功应用于要素 多边形类型 有谁知道如何向该特征添加文本并将其显示在多边形的中心 function handleGeoJson data map da
  • 基于 ajax 的弹出窗口中的 Mathjax + CKEditor 4 + CKEditor

    我已经配置了 CKEditor 4 并且我的页面上有以下内容 我的页面中有一个 CKEditor 设置值的两个选项 这两个选项本身分别选项两个基于 ajax 的弹出窗口 这些基于 ajax 的弹出窗口包含 CKEditor 现在我有以下问题
  • jQuery/JavaScript:仅选择子级的第一个“层”

    我试图仅选择给定类型的子元素的第一 层 而不选择嵌套在另一个限定元素内的元素 例如 在 div div class special div class special div div div div class special div di
  • 使用 JavaScript 中的 mousemove 事件在画布内的图像上绘制矩形

    我正在尝试使用 mousemove event 在画布内的图像上绘制一个矩形 但由于clearRect 我在图像上得到了矩形 并且矩形中填充了颜色 谁能帮我解答一下 如何在图像上绘制一个只有边框的矩形 下面是我实现它所遵循的代码 var c
  • JQuery - 每个会话运行一次

    我有一个由 计算 按钮触发的功能 我需要此行每个会话仅运行一次 会话可能为 1 天或直到浏览器重新加载 popup with form magnificPopup open 这将打开一个放大的弹出窗口 一旦执行此函数 弹出窗口打开 如果再次
  • 从数组中的每个字符串值中删除公共单词

    我正在动态填充一个数组 该数组基于所有id页面上的 svideo tags 我怎样才能删除这个词dog从每个数组项的值 这是到目前为止填充的数组 我只需要删除这个词dog对于每个数组项 var players new Array video
  • 使用 jQuery 和 iFrame 下载文件

    我有以下代码来下载 csv file ajax url urlString contentType application json charset utf 8 dataType json cache false success funct
  • 所选项目的值[重复]

    这个问题在这里已经有答案了 我正在使用一个
  • 这个 jQuery 选择器中的“>”是什么意思?

    大于号 gt 在这里制作 Is someElement find gt someAttribute 与 someElement find someAttribute 否 它仅选择一个元素 如果它是以下元素的直接子元素 someElement
  • Mousemove视差效果移动div的位置

    我正在尝试创建轻微的视差效果 我不确定它是否真的构成视差 但这是一个类似的想法 其中有四层 当鼠标移动时 它们以略有不同的速率移动 我找到了一个很好的例子 它提供了与我想要的类似的东西 http jsfiddle net X7UwG 2 h
  • 由javascript创建的css动画[关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 我试图在按下按钮时创建一个带有 css3 动画计时器的 div 继承人的代码 http jsfiddle net arcco96 y5nov
  • 使用西里尔字母的正则表达式

    我有一个用于文本区域字段中字数统计的 jQuery 函数 此外 它排除所有用 三重括号 封闭的单词 它对于拉丁字符效果很好 但对于西里尔字母句子有问题 我认为错误部分与正则表达式有关 field val replace g match b
  • jqgrid嵌套子网格第四级子网格总是返回子网格的第一个rowid

    jqGrid v4 3 2 ie9荣获7家企业 我使用以下代码来生成子网格 http www trirand com blog jqgrid jqgrid html http www trirand com blog jqgrid jqgr
  • JSONP 回调失败,需要 javascript/jquery 帮助

    我是 json 的菜鸟 了解一点 jquery 并尝试让一个小脚本工作 我想检索某个纬度 经度的时间 并根据我在网上阅读的内容编写了这个脚本 getJSON http ws geonames org timezoneJSON lat 47
  • 解密Javascript源代码[关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我已经编写了一段 JavaScrip
  • 动态多个延迟 jQuery Ajax 调用

    使用 jQuery 的延迟模式http api jquery com jQuery when http api jquery com jQuery when 我正在尝试进行多个 jsonp ajax 调用并等待结果 然后再进行下一步 我可以

随机推荐