认识Jquery

168 阅读2分钟

一. Jquery简介

(参考文档:www.runoob.com/jquery) jQuery是一个快速,简洁的javaScript库;
封装了常见的功能代码,优化了Dom操作、事件处理、动画设计、Ajax交互。
Jquery的本质就是调用函数和方法。

二. Jquery的优点

  • 轻量级。核心文件才几十KB,不会影响页面的加载速度。
  • 跨浏览器兼容。基本兼容了现在的主流浏览器。
  • 链式编程,隐式迭代。
  • 对事件、样式、动画支持,大大简化了Dom操作。
  • 支持插件开发。树形菜单、轮播图、日期空间...
  • 免费、开源。

三. jQuery的常用API

  1. 得到当前索引号
    • jQuery对象.index()
  2. 修改样式
    • 修改单个样式 —— jQuery对象.css('color','red')

    • 修改多个样式 —— jQuery对象.css({'color':'red','background':'pink'})

    • 修改类名改变样式

      • 添加类名 —— jQuery对象.addClass('.info')
      • 删除类名 —— jQuery对象.removeClass('.info')
      • 切换类名 —— jQuery对象.toggleClass('.info'),若有该类名则删除,若没有则添加上

四. Jquery如何获取元素

window.$ = window.jQuery

  1. $是Jquery的别称,也是jQuery的顶级对象,相当于原生JS中的Window。把元素利用$包装为jQuery对象,就可以直接调用jQuery方法。

  2. $('选择器'), 该方法参数可以接受CSS选择器,返回一个可以操作的Dom元素对象,简称jQuery对象。

  3. $(),也可以接受其他参数,都是将Dom元素封装为jQuery对象,从而方便开发者对Dom进行操作。即开发者只需要选择元素和操作元素即可。

五. jQuery如何操作元素

使用jQuery两步走,选择元素 ——> 操作元素

$('<p>') 或者 $('<p>123</p>')都可以创建一个jQuery对象

     let  li = $('<li>这是创建的li元素</li>')
     let p = $('<p>这是创建的p段落文字</p>')

1. 添加元素 该对象封装了Dom元素,可以通过以下方法,将Dom元素插入到页面

  • 内部添加 —— li添加到目标元素ul的子级(开头子级) —— $('ul').append(li)
  • 内部添加 —— li添加到目标元素ul的子级(末尾子级) —— $('ul').prepend(li)
  • 外部添加 —— p添加到目标元素.info同一级(目标前面) —— $('.info').before(p)
  • 外部添加 —— p添加到目标元素.info同一级(目标结尾) —— $('.info').after(p)

2. 删除页面中的元素

  • 自杀 —— 删除目标元素本身 —— jQuery对象.remove()
  • 断后 —— 删除目标元素所有子节点 —— jQuery对象.empty()

3.修改页面中的元素

  • html修改 —— 可以修改目标元素下的内容以及内容的标签样式

  • text修改 —— 只修改目标元素下的内容

  • val修改 —— 一般是修改表单控件的value值

      $('div').html('<strong>这是Html修改的内容</strong>')
      $('div').text('只能修改文本内容')
      $('input[name="msg"]').val('修改input的value值')
    

六. jQuery 如何移动元素?

依然按照使用jQuery两步走战略 。选择元素 ——> 操作元素

  • $('#demo').before('p') —— 将 p 元素移到 #demo 元素前面
  • $('#demo').after('p') —— 将 p 元素移到 #demo 元素后面
  • $('#demo').insertBefore('p') —— 将 #demo 元素移到 p 元素前面
  • $('#demo').insertAfter('p') —— 将 #demo 元素移到 p 元素后面

六. jQuery 如何操作元素属性?

1. 获取属性

  • 获取元素的固有属性 jQuery对象.prop('属性名')

           $('input').prop('value')
    
  • 获取元素的 自定义属性 jQuery对象.attr('属性名')

      $('input').attr('data-index')
    
  • 获取元素内存的属性值 jQuery对象.data('属性名'),存储的是临时数据,一旦刷新就没了

      $('input').data('index')
    

2. 修改属性

jQuery封装的精华之处,同一个函数可以根据参数的不同实现不同的功能,也就是重载

        $('input').prop("width","500")
        $('input').attr("width","500")

七. jQuery 的链式调用

  1. 链式调用是jQuery的精华所在
  2. 通常一个函数的返回值是一个结果,但是jQuery大部分方法返回的是一个jQuery对象,从而实现链式调用。
  3. $('.box').css('background','red').siblings().css('background','blue')

八. jQuery 的隐式迭代

遍历内部DOM元素(伪数组形式存储)的过程。

给匹配到的所有元素进行循环遍历,执行相应的方法,而不用我们再进行循环,简化我们的操作,方便我们调用

    // 隐式迭代就是自动遍历页面中的满足条件的li,给其添加 颜色为红色的样式,这就是隐式迭代
       $('li').css('color','red')

补充知识1 : Dom对象和jQuery对象的区别

  • 利用原生JS获取的都对象叫做Dom对象

       const btn = document.queryselector('.btn')
    
  • 利用jQuery方式获取的对象叫做jQuery对象,本质是通过$()将Dom对象进行包装

       $('.btn')     $('#id')    $("input[type='text']")
       
    
  • 原生JS的Dom对象只能使用Dom方法,jQuery对象只能使用jQuery方法,不能混用。

  • Dom对象和Jquery对象的相互转换

    • Dom对象转换为jQuery对象 $(Dom对象) 不用引号
      • $(Dom对象)该方法对原生Dom元素加工,成为一个伪数组对象
    • jQuery对象转换为Dom对象 (Dom对象)[0](Dom对象)[0] 或(Dom对象).get(0)
      • $(Dom对象)[0] 伪数组对象的第一个数组元素就是对应的Dom元素