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');
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 217,542评论 6 504
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,822评论 3 394
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 163,912评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,449评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,500评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,370评论 1 302
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,193评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,074评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,505评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,722评论 3 335
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,841评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,569评论 5 345
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,168评论 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,783评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,918评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,962评论 2 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,781评论 2 354

推荐阅读更多精彩内容

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