jquery总结

JQuery

jQuery是由几个外国哥们封装的js代码库(就是对js原生代码进行了方法封装),目的是为了简化原生代码的繁琐操作,口号是:write less do more。

特点:开源、插件极多、主要简化的是js原生的DOM操作还有ajax请求

目前版本:1x、2x、3x版本,各个版本没有较大区别,唯一比较重大的改变就是从2x版本开始,jQuery不再兼容IE低版本。
1.在 head标签中 或者 body标签后 引入jQuery.js
2.jQuery声明了一个全局对象:jQuery,通过它来调用jQuery封装的操作方法

1、选择器(DOM获取操作)

jQuery提供的获取元素方法,需要选择器字符串作为参数,获取文档中所有符合选择器要求的DOM
jQuery支持所有CSS选择器
jQuery还添加了一些CSS不支持的选择器
语法:返回符合选择器要求的元素集合,该集合由jQuery进行封装,可以调用jQuery提供的操作方法。
foreach() 只能循环 对象和数组

1. :eq(n) 选择器: 获得索引n的元素(最外层符合)
console.log($('li:eq(2)'));
2. :lt(n) 选择器: 获得索引小于n的元素
console.log($('li:lt(2)'));
3. :gt(n) 选择器: 获得索引大于n的元素
console.log($('li:gt(2)'));
4. :odd 选择器: 获得索引为奇数的元素
console.log($('li:odd'));
5. :even 选择器: 获得索引为偶数的元素
console.log($('li:even'));
6. :empty 选择器: 获得内容为空(不包含文本和子元素)的元素
console.log($('li:empty'));
方法:
1. eq(n): 获得索引为n的元素
console.log($('li').eq(3));
console.log($('li:eq(3)'));
2. get(n): 获取索引为n的原生DOM
console.log($('li').get(3));

2.原生DOM 与 jQueryDOM 相互转化

注意:
1. 原生方法获得到的是原生DOM或DOM集合,可以调用或访问原生的方法和属性
2. jQuery方法获得到一定是jQuery包装后的元素集合,只能调用或访问jQuery的方法或属性
$('li').eq(2).style.color = "red";
$('li').get(2).style.color = "red";
//jQueryDOM 转 原生DOM:通过 get()方法 进行转化
var jqDOM = $('li').eq(3);
console.log(jqDOM);
var oriDOM = jqDOM.get(0);
console.log(oriDOM);
//原生DOM 转 jQueryDOM:通过 $()方法 进行转化
var oriDOM = document.querySelector('li');
console.log(oriDOM);
var jqDOM = $(oriDOM);
console.log(jqDOM);
3.DOM操作( 增删改查)
    //增
    //创建DOM: $(tagString)
    var $h = $('<h1 class="title"> jQuery 创建DOM </h1>');
    console.log($h);

    //添加
        (1) A.append(B), 将B追加到A的末尾, 方法返回A自身
        $('body').append($h);

    (2) B.appendTo(A), 将B追加到A的末尾, 方法返回B自身
    $h.appendTo($('body'));
    console.log($h.appendTo('body'));

    (3) A.prepend(B), 将B添加到A的首位
    (4) B.prependTo(A), 将B添加到A的首位

   (5) A.after(B), 在A的后面插入B, 返回A
        console.log($('li:eq(2)').after($('<li>6</li>')));

    (6) A.before(B), 在A的前面插入B, 返回A
          console.log($('li:eq(3)').before($('<li>7</li>')));
    //删除
    (1) A.remove(), 将A从它的父元素中删除, 返回A
         console.log($('li:eq(2)').remove());

    (2) A.empty(), 将A的内容置空, 返回A
        $('ul').empty().append($('<li>10</li>').css('color', 'red'));
        console.log($('ul').empty());
    //修改
        A.replaceAll(B), 用A替换B, B必须是文档中已经存在的元素, 返回A
         console.log($('<li>10</li>').replaceAll($('li:eq(2)')));
    //克隆
    A.clone(), 克隆A, 只有深克隆, 连同A的内容一并克隆。
    $('ul').clone().appendTo('body');
//查询( 获取元素, 根据关系获取元素)
  //父关系
        (1) A.parent(): 获得A的父元素
        $('li:eq(2)').parent().css('background-color', 'red');
        (2) A.parents()
        (3) A.parentsUntil()
  //子关系:
        A.children(): 获得A的子元素集合, 可以填写选择器字符串为参数, 会自动获取符合选择器要求的子元素。
      console.log($('div').children('span'));
  //兄弟关系:
    A.next(): 获得A的下一个兄弟元素
        console.log($('li:eq(2)').next());

    A.nextAll(): 获得A后面所有的兄弟元素
        console.log($('li:eq(2)').nextAll());
    A.nextUntil()

    A.prev(): 获得A的上一个兄弟元素
        console.log($('li:eq(2)').prev());

    A.prevAll(): 获得A前面所有的兄弟元素
        console.log($('li:eq(2)').prevAll());
    A.prevUntil()

    A.siblings(): 获得A所有的兄弟元素
        console.log($('li:eq(2)').siblings());

4.DOM属性的操作

    1. A.attr():读写A的属性值,setAttribute() 和 getAttribute() 的封装
     参数:
     (1)string类型,表示属性名
     (2)无类型要求,表示属性值
     当一个参数时是读取,两个参数时是设置,当第二个参数值为null时是删除
    // 设置属性
     $('div').attr('id','box');
    // 读取属性
       console.log($('div').attr('id')); // 'box'
    // 删除
     $('div').attr('id',null);
      console.log($('div').attr('id')); // undefined

    // 类名的操作
     A.addClass(): 为A添加类名
     $('div').get(0).className += " A";
     $('div').addClass('A');
     A.removeClass(): 删除类名
     $('div').removeClass('box');
     A.toggleClass(): 切换类名,如果类名已经存在就删除,不存在就添加
     $('div').toggleClass('box');

    // 内容或文本设置
     text() / html(): 对应了原生的 innerText 和 innerHTML
     如果方法无参数,那就是读取值;如果方法有参数,那就是设置值
    // 读取
        console.log($('.btn').eq(5).html());
    // 设置
    $('.btn:eq(5)').html('AD');
    $('.btn:eq(5)').get(0).innerHTML = "SS";

     表单元素的value
     val(): 对应了原生的 value
    //  如果方法无参数,那就是读取值;如果方法有参数,那就是设置值
    // 读取
      console.log($('input').val());
    // 设置
    $('input').val('QWER');

5. DOM 大小及位置

(1). jQuery读取DOM宽高
    1. width() / height()
// 读取,只会读取盒模型 内容 宽度
 console.log($('.A').width());
// 设置,设置盒模型内容宽度(纯数字或带单位的字符串都可以)
$('.A').width(200);

 2. innerWidth() / innerHeight()
// 读取,只会读取盒模型 内容+内边距 宽度
console.log($('.A').innerWidth());
// 设置,如果存在内边距,设置的值会保留内边距,自动修改内容宽度
$('.A').innerWidth(200);

3. outerWidth() / outerHeight()
// 读取,读取完整盒模型宽度 内容+内边距+边框
console.log($('.A').outerWidth());
// 设置,保留原有的内边距和边框值,剩余部分自动分配给内容宽度
 $('.A').outerWidth(200);

(2).读取位置
1. offset()返回一个位置对象,left属性和top属性表示位置
// 不管元素是否存在定位父级,读取的始终都是元素边缘到视窗边缘的距离
 console.log($('.B').offset().left);

 2. position()返回一个位置对象,left和top属性表示位置
// 如果元素存在定位父级,读取的是元素边缘到定位父级边缘的距离,如果不存在定位父级,读取的是元素边缘到视窗边缘的距离
 console.log($('.B').position());

 3.滚动偏移
 scrollTop() / scrollLeft()
// 当无参数时读取滚动偏移,当有参数时设置滚动偏移(number)
 $('.A')[0].onscroll = function(){
     // 读取滚动偏移
      console.log(this.scrollTop);
    console.log($(this).scrollTop());
 }

6.事件

1.点击事件
     $('.box').click(function(){
         $('.box').css('background','green')
     })
    $('.box').on('click',function(){
         $('.box').css('background','green');
     })
2.移出事件
 $('.box').off('click');
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 写的少,做的多 1.为什么要使用jquery? 在javascript开发过程中,有很多很多缺点:1:代码冗余.2...
    又菜又爱分享的小肖阅读 3,180评论 2 5
  • jQuery是一个快速、简洁的JavaScript框架,它封装JavaScript常用的功能代码,提供一种简便的J...
    风之伤_3eed阅读 1,567评论 0 1
  • Jquery能实现的JS都能实现,JS实现的Jquery未必能实现 事件 常用的基本事件 鼠标事件mouseent...
    warmT_阅读 1,238评论 0 0
  • JQuery简介 jQuery 是一个 JavaScript 库。 jQuery 极大地简化了 JavaScrip...
    伟大的洪立阅读 1,756评论 0 0
  • jQuery对象和DOM对象的相互转换 DOM(Document Object Model,文档对象模型),每一份...
    采姑娘的大白菜阅读 3,365评论 0 0

友情链接更多精彩内容