jquery

1. jquery简介

JQ是一个轻量级的原声js库 目前最高版本 3.X 最低支持到 IE9

1. 强大的选择器 总是能得到一个集合
2. 对DOM的处理非常简单方便
3. 兼容强大 自身就已经做完了基本的兼容处理
4. 链式操作  所用的JQ方法 都可以通过 "." 来不断调用
5. 强大的 AJAX 封装库
$(参数)  返回值 JQ对象

2.jquery选择器

1.$('.box') 如果这个同类名标签 只有一个 直接用就行 $('.box').css();
  如果同类名标签 有多个  $('.box').css() 是给所有的标签 统一操作
  如果需要精准的操作某一个标签 需要用到 .eq()  $('.box').eq(0).css()
2. :first   选中第一个子集  只选择一个  $('.box div:first')
3. :last  选择最后一个子集 $('.box div:last')
4. :even 偶数下标  下标从0开始  $('.box .item:even')
5. :odd  奇数下标 $('.box .item:odd')    
6. :eq 指定下标  $('.box .item:eq(0)'    $('.box .item').eq(0);
7. :gt(index) 指定以上标签被选中  >index 下标的元素  $('.box .item:gt(3)')
8. :lt(index) 指定以下标签被选中 <index 下标的元素  $('.box .item:lt(3)')
9. :contains(文本内容)  选择包含目标文本内容的标签  $('.box1 .item:contains(666)')
10.:empty 选中内容为空的标签  $('.box .item:empty')
11. :parent  选中非空标签  $('.box .item:parent')
12. :has() 选择包含了 对应子集的标签 $('.box .item:has(p)')  item 内 有 p 标签

3. jquery样式和方法绑定

通过 JQ对象的属性方法 .css() 来获取或者设置
JQ 的样式设置 .css() 跟原生一样 都是通过行间样式进行设置

1. 单个样式的设置  $('.box').css('width', '200px');
2. 多个样式设置
$('.box').css({
    width: '10px',
    height: '100px',
    top: top + 'px',
})
DOM 0级 最根本是标签的属性方法
box.onclick = function(){} //原生
$('.box').on('click',function(){})
DOM 2级
box.addEventListener('click',function(){},false);
$('.box').click(function(){ })

 用JQ获取class 时 是一个集合 不止有一个元素
 所以 点击方法内 如果需要操控元素本身 最好使用$(this);
  $('.box').click(function(){
    // 给盒子 添加 class
    $(this).addClass('on');
    // 删除 class
    $(this).removeClass('on');
    // 切换 class
    $(this).toggleClass('on');
})

$('.box').width() // 内容区域宽度
$('.box').height() // 内容区域高度
$('.box').innerWidth() // clientWidth  内容+padding
$('.box').innerHeight() // clientHeight  

$('.box').outerWidth() // offsetWidth  内容 + padding + border
$('.box').outerWidth(true) //  内容 + padding + border + margin
$('.box').outerHeight() //offsetHeight

$('.box').offset().left // 盒子左边 到 浏览器视窗左边 之间的距离
$('.box').offset().top // 盒子上边 到 浏览器视窗上边 之间的距离

$('.box').position().left // 到 定位 父级 左边 之间的距离  如果父级没定位 则以 body为基准
$('.box').position().top // 到 定位 父级 上边 之间的距离

4. jq动画

$('.box').animate(参数1,参数2,参数3)
参数1 css样式 对象的形式  键值对
参数2 时间(ms)
参数3 callback 回调函数  动画结束后调用
 $('.box').animate({
    wdith: '300px',
    height: "200px",
  },1000,function(){ })

常用动画


    淡入 fadeIn(时间,callback);
                callback 可以省略
    淡出 fadeOut()
    淡入淡出切换 fadeToggle()

    向下打开  slideDown()
    向上收起  slideUp()
    切换打开状态  slideToggle()

    动画执行顺序的控制  delay()
    $('.box').fadeIn(500).delay(500).slideUp();

    动画停止  stop();

5. jq查询

1. 设置 获取 文本节点
    $('.box').text(); //获取
    $('.box').text('12312312312'); //设置
2、设置 获取 html 内容
    $('.box').html(); //获取
    $('.box').html('<p></p>'); //设置
3. 设置 获取 表单内容
    $('input').val(); //获取
    $('input').val('嘿嘿嘿'); //设置
4. 获取节点
    获取所有的子集节点  $('.box').children()
    获取指定的子集节点  $('.box').children('.item');

    返回第一个指定节点  $('.box').first();
    返回最后一个指定节点  $('.box').last();

    获取下一个节点对象  $('.box').next();  只能获取一个
    获取后面所有的节点对象  $('.box').nextAll()  
    获取上一个节点对象  $('.box').prev();  只能获取一个
    获取上面所有的节点对象  $('.box').prevAll()  

    获取所有的兄弟元素  $('.box').siblings();
    获取父节点  $('.box').parent();
    获取定位父节点  $('.box').offsetParent();
    
    查找后代元素  $('.box').find('p');  在后代中 查找 p 标签
    获取 元素 在 父元素 子集中 的位置下标  $('.box').index();  返回值是 数值

    将JQ对象 转成 DOM对象   $('.box').get();  get里面出入的是 目标下标
    
    设置自定义属性 行间属性 
    $('.box').attr('index')  读取
    $('.box').attr('index','123')  设置

    删除行间属性 
    $('.box').removeAttr('index');

6. jq事件

1. .on(events,selector,data,function)
2. .events(data,function)
3. .bind(events,data,function)
        events : 事件类型
        data : 除了实参外 的 额外参数
        selector : 选择器
        function : 所要执行的方法
    
 bind 和 on 更加的相似  都是给 元素 绑定方法的一种方式
    bind 在 JQ 1.7.X版本以下 用的多
    1.7.x 以上版本 基本上都用 on
    bind 是直接绑定在元素上 类似于 在标签中直接绑定事件  没有 selector 参数
    1.7.x 版本以后 官方更加推荐使用 on 

3. on 事件代理 有selector参数 (选择器) 可以进行事件委托
        $('ul').on('click','li',function(){
            //筛选出 ul 下面 的 li 给其绑定 点击事件  等同于 $('ul li') 但原理不同
            // 原理是 事件冒泡 子元素将事件统一委托给父元素 进行事件处理
            // 这样就不用给每一个子元素 绑定事件 大大的提高了性能
            // 给动态添加的元素 也能绑定上指定事件
        })


4. .off() 事件移除 1.7 以上版本
   .unbind() 事件移除 1.7 以下的版本
5. $('.box').click(function () {
        // this 是 dom对象 代表是 调用对象的本身
        // $(this) 是 JQ 对象 代表 调用对象本身 但是 可以使用 JQ 的一系列方法

        // js原生中的 return false 返会一个bool值 
        // JQ 中的 return false;
            // 1. 返回值
            // 2、阻止事件冒泡
            // 3. 阻止默认事件
        return false;
    })

7. jq创建标签对象

1. 向末尾添加
   $('<p></p>').appendTo('.box');

2. 给目标对象结尾 添加子元素
    $('.box').append($('<p></p>'));

3. 向前添加
    $('<p></p>').prependTo('.box');

4. 给目标元素前面 添加子元素
    $('.box').prepend($('<p></p>'));

5. 将p元素 插入到 目标元素的后面(兄弟关系)
    $('<p></p>').insertAfter('.box');

6. 将p元素 插入到 目标元素的前面(兄弟关系)
    $('<p></p>').insertBefore('.box');

7.  给目标元素的后面 添加 p 元素
    $('.box').after('<p></p>');

8. 给目标元素的前面 添加 p 元素
    $('.box').before('<p></p>');

9. 清空内容
    $('.box').empty();

10. 删除标签自身
    $('.box').remove();

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

推荐阅读更多精彩内容

  • 22、JQ的基础语法、核心原理和项目实战 jQ的版本和下载 jQuery版本 1.x:兼容IE6-8,是目前PC端...
    萌妹撒阅读 1,740评论 0 0
  • 什么是jQuery? jQuery是一个快速的、轻量的、功能丰富的js库。 jQuery的官网 http://jq...
    小五同学H阅读 243评论 0 0
  • jQuery理解 jQuery就是一个js库,使用jQuery的话,会比使用JavaScript更简单。jQuer...
    艾曼大山阅读 1,515评论 2 27
  • 1.自定义对象 prototype (1)请简述 prototype 的具体的作用 原型列,使js间接的实现面向...
    故人望曲江阅读 192评论 0 0
  • day01 1.1 jQuery 作用:写的少,做的多 1.2使用步骤 引入 jQuery 文件 添加入口函数(非...
    冰雪也消融阅读 172评论 0 0