jQuery入门

jQuery的优势

  1. DOM操作方便。
  2. 解决了浏览器的兼容性问题:(浏览器宽高,event,监听等)

学习路线

  1. 常用方法
  2. 高级方法
  3. 熟练使用
  4. 理解原理

安装方式

  1. download到本地
  2. npm/yarn 包管理
  3. 引入CDN

获取DOM

  1. 与CSS选择器比较类似,选择的是一个类数组,$('div')[0]才代表DOM元素;
  2. 注意区分DOM对象和jQuery对象,例如:$('this')才是jQuery对象,才可以使用jQuery方法;
  3. $('')里面可以放以下几类东西:
    • CSS选择器
    • 原生DOM,可以是一个数组,也可以是单个DOM
    • function,相当于$(document).ready(function),自动执行函数,DOM文档解析完成后立即执行,解决了异步问题
    • null,返回空对象

文本属性text,html和val

  1. text(): 取值赋值都是一组,拼接字符串
  2. html(): 取值只取第一个,赋值赋一组
  3. val(): 取值只取第一个,赋值赋一组,主要用于表单元素

属性attr和prop

  1. attr即attribute,既可以获取和设置DOM固有的属性(如:id/class/href 等) 也可以设置自定义的新增属性:
    $('div').attr('id'); //获取id
    $('div').attr('id', 'navbar'); //设置单个属性
    $('div').attr({         //传入对象(键值对),设置多个属性
        id:'navbar',
        age: '18'
    })
    复制代码
  2. prop即property,仅支持DOM固有属性, 语法与attr一致;
  3. 删除属性:
    removeAttr('id');
    removeProp('age'); //不能删除id/class等自带属性;
    复制代码
  4. prop可以动态的获取,attr不能动态的获取

添加和删除class

  1. addClass('container') 支持链式操作,(一般设置类方法都会返回this)
  2. removeClass('container')
  3. hasClass('container') 不支持链式操作,返回布尔值
  4. toggleClass('container') 开关式操作

CSS样式获取和操作

  1. $('div').css('width') 返回值是'100px'字符串,而$('div').width返回数值,获取多个样式时,可以传数组,返回值是对象;
  2. $('div').css('width','100px')设置样式,如果设置多个样式,可以传入对象;
  3. 关于width:
$('div').width   //content
$('div').innerWidth  //content+padding
$('div').outerWidth  //content+padding+border
$('div').outerWidth(ture) // content+padding+border+margin
复制代码
  1. 关于position:
$('div').offset()  //相对于文档而言的位置,可以传值{top:100px,left:100px}
$('div').position()  //相对于父级(有定位的父级),不可以传值
复制代码
  1. 关于scroll:
$(document).scrollTop();
$(document).scrollLeft();
复制代码

DOM筛选和遍历

  1. 筛选方法
    $('li').find('.container');
    $('li:first'); //同样用法还有last/odd/even/eq(2)
    $('li').first(); //同样用法还有last()/eq(2), 不包括odd/even
    $('li:eq(2)').prev(); //返回上一个标签,还有prevAll()/next()/nextAll()/siblings()
    $('li').filter(function(index,ele){return true/false} //选取返回值为true的元素
    $('li').not('.test');
    $('li').is('.test'); //返回布尔值
    $('li').slice(2,4); //选取第二三号元素,取头不取尾[start,stop)
    复制代码
  2. each: 只是遍历,返回的还是之前的DOM不做筛选
    $('li').each(fucntion(index,ele){
        var arr= [];
        arr.push($(this).find('.name').text()); //find 方法查找元素
        }
    arr.join(',');
    复制代码
  3. map: 遍历,并筛选DOM,返回筛选后的对象
    $('li').map(fucntion(index,ele){
        if($(ele).find('.age').text()>15)
        return ele;
        }
    复制代码
  4. $('li').has('p')查找有p子元素的li

jQuery 整体架构封装思想

  1. 如何全局使用jQuery: window.jQuery=window.$=jQuery;
  2. 无new操作: 再套一层 init();
  3. 改变原型:init.prototype = jQuery.prototype
  4. 链式操作: return this;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值