jQuery

作者: Schrodinger的猫 | 来源:发表于2017-08-01 15:44 被阅读0次

    jQuery 能做什么?

    jQuery是一个快速、简洁的JavaScript框架;一个优秀的JavaScript代码库,jQuery设计的宗旨是“write Less,Do More”;它封装JavaScript常用的功能代码,提供一种简便的JavaScript设计模式,优化HTML文档操作、事件处理、动画设计和Ajax交互。jQuery的核心特性可以总结为:具有独特的链式语法和短小清晰的多功能接口;具有高效灵活的css选择器,并且可对CSS选择器进行扩展;拥有便捷的插件扩展机制和丰富的插件。
    (1). 选择网页元素:
    可以方便快捷的获取网页元素,使用原生javascript的方式来遍历或者查找DOM元素的某个部分会造成编写很多冗余代码。而jQuery一行代码就够了。

    $(' div .content').find('p');//查找符合选择器的后代元素
    $(' ul > li ').eq(0).siblings();//选择兄弟节点
    $('ul > li').parent();//选取父亲节点
    $('#box').children();//选取儿子节点
    

    (2). 元素的操作:取值和赋值
    可以方便快速的取值和赋值,例如:

    $('#box').html();
    $('#box').text();
    $('#box').val();//主要是选中表单输入框中的值。
    //传递参数为设置值,不传参数为获取值。
    

    (3). 元素的操作:复制,删除和创建
    包括DOM内部插入节点:
    append()向每个匹配的元素内部追加内容
    prepend()向每个匹配的元素内部前置内容
    appendTo()把所有匹配的元素追加到另一个指定元素的集合中。
    prependTo()把所有匹配的元素前置到另一个指定的元素集合中。
    after()与before()表示用来对相对选中元素外部增加相邻的兄弟节点2个方法都是都可以接收HTML字符串,DOM 元素,元素数组,或者jQuery对象,用来插入到集合中每个匹配元素的前面或者后面。
    before()、after()与insertBefore()。insertAfter()的除了目标与位置的不同外,后面的不支持多参数处理 ;
    before 是前面是基准后面是要插入的元素,insertBefore是前面是要插入的内容,后面是基准。after()和insertAfter()类似。
    DOM节点删除内容:
    empty():empty它只移除指定元素中的所有子节点(自身不移除)。这个方法不仅移除子元素(和其他后代元素)同样移除元素里的文本。
    remove():remove移除元素,自身包括后代全都移除。
    detach():detach从字面上就很容易理解。让一个web元素托管。即从当前页面中移除该元素,但保留这个元素的内存模型对象。这个方法不会把匹配的元素从jQuery对象中删除,因而可以在将来再使用这些匹配的元素。与remove()不同的是,所有绑定的事件、附加的数据等都会保留下来。当你append之后,又重新回到了文档流中。就又显示出来了。
    DOM拷贝clone():
    clone()方法深度 复制所有匹配的元素集合,包括所有匹配元素、匹配元素的下级元素、文字节点。如果节点有事件或者数据之类的其他处理,我们需要通过clone(true)传递一个布尔值ture用来指定,这样不仅仅只是克隆单纯的节点结构,还要把附带的事件与数据给一并克隆了。
    (4). 工具方法
    常用方法:each()遍历一个jQuery对象,为每个匹配元素执行一个函数;

    $(' ul > li ').each(function(value,index){})
    

    index()从给定集合中查找特定元素index;没参数返回第一个元素index;如果参数是DOM对象或者jQuery对象,则返回参数在集合中的index;如果参数是选择器,返回第一个匹配元素index,没有找到返回-1。

    $('.active').index();
    

    map()通过一个函数匹配当前集合中的每个元素,产生一个包含新的jQuery对象

    $(' div ').map(function(index,item){})
    

    ready()当DOM准备就绪时,指定一个函数来执行。与window.onload不同的是不必等待图片等其他资源加载完毕就可以执行。
    (5). jQuery事件操作
    on(events ,[ selector ] ,[ data ])和off()
    各个参数的含义:
    events:一个或多个空格分隔的事件类型和可选的命名空间;
    selector:一个选择器字符串,用于过滤出被选中的元素中能触发事件的后代元素;
    data:当一个事件被触发时,要传递给事件处理函数的event.data;
    handler(eventObject):事件被触发时,执行的函数。

    $('div').on('click', function(e){
        console.log(this);
        console.log(e);
    })
    //事件委托  让div下的span全都绑定事件,事件可以绑定在div上
    $('div').on('click', 'span', function(e){
        console.log(this);
        console.log(e);
    });
    

    委托事件有一个优势,他们能在后代元素添加到文档后,可以处理这些事件。在确保所选择的元素已经存在的情况下,进行事件绑定时,可以使用委派的事件,以避免频繁的绑定事件及解除绑定事件。
    off(events [, selector ] [, handler ] )
    类似于on,但为移除一个事件的处理函数。
    trigger():根据绑定到匹配元素的给定的事件类型执行所有的处理程序和行为

       $('#foo').on('click', function() {
           alert($(this).text());
        });
    $('#foo').trigger('click');
    

    (6). 特殊效果
    hide([duration ] [,easing ] [,complete ])
    duration:动画持续多久
    easing:表示过渡使用哪种缓动函数,jQuery自身提供"linear" 和 "swing"
    complete:在动画完成时执行的函数
    用于隐藏元素,没有参数的时候等同于直接设置display属性
    show()同上,用于显示元素。
    toggle()切换,用于切换元素的隐藏显示。

    $('#box').hide();
    $('#box').show();
    $('#box').toggle();
    

    fadeIn( [duration ] [, easing ] [, complete ] ),fadeOut
    淡入和淡出,fadeToggle淡入和淡出切换

    $('#box').fadeIn('slow',function(){})
    

    slideDown( [duration ] [, easing ] [, complete ] ),slideUp滑动卷上或者滑下;slideToggle两者切换

    $('#box').slideUp('slow', function() {
    });
    

    animate(properties [, duration ] [, easing ] [, complete ])
    自定义动画

    properties是一个CSS属性和值的对象,动画将根据这组对象移动。
    duration是一个字符串或者数字决定动画将运行多久。
    easing是一个字符串,表示过渡使用哪种缓动函数。
    complete:在动画完成时执行的函数
    stop(),finish()
    stop()表示动画停止并停留在当前状态;finish()表示动画立即结束并返回最初状态。
    (7). AJAX

    $.ajax({
    url:'xxx',//请求的url地址
    method: 'GET',//请求的方式GET或者POST
    data:{name:'lzj',age:24},//传递的参数
    success:function(data){},//成功执行的回调
    ...//还可以配置很多参数
    })
    

    async:布尔值,表示请求是否异步处理。默认是 true。
    cache:布尔值,表示浏览器是否缓存被请求页面。默认是 true。
    dataType:规定预期的服务器响应的数据类型。默认执行智能判断(xml、json、script 或 html)。
    context:这个对象用于设置Ajax相关回调函数的上下文。 默认情况下,这个上下文是一个ajax请求使用的参数设置对象
    headers:一个额外的{键:值}对映射到请求一起发送。此设置会在beforeSend 函数调用之前被设置 ;因此,请求头中的设置值,会被beforeSend 函数内的设置覆盖。

    jQuery 对象和 DOM 原生对象有什么区别?如何转化?

    DOM对象是我们用传统的javaScript方法获得的对象,jQuery对象就是用jQuery的类库选择器获得的对象。
    JQuery对象就是通过jQuery包装DOM对象后产生的对象。JQuery对象是jQuery独有的,其可以使用jQuery里的方法,但是不能使用DOM的方法;DOM对象能使用javascript固有的方法,但是不能使用jQuery里面的方法。例如:

    $(' #box ').html();//jQuery对象的方法与下面的DOM对象方法等同
    document.getElementById('box').innerHTML;
    

    jQuery对象和DOM对象的相互转换

    $('#box')[0];//jQuery对象转换成DOM对象
    var box = document.getElementById('box');//dom对象转换为jQuery对象
    var $box = $(box);
    

    jQuery中如何绑定事件?bind、unbind、delegate、live、on、off都有什么作用?推荐使用哪种?使用on绑定事件使用事件代理的写法?

    绑定事件$('#box').on('click',function(){})
    $(selector).bind(event,data,function,map)

    bind() 方法向被选元素添加一个或多个事件处理程序,以及当事件发生时运行的函数。

    $(selector).unbind(event,function,eventObj)

    unbind() 方法移除被选元素的事件处理程序。
    该方法能够移除所有的或被选的事件处理程序,或者当事件发生时终止指定函数的运行。

    $(selector).delegate(childSelector,event,data,function)

    delegate() 方法为指定的元素(属于被选元素的子元素)添加一个或多个事件处理程序,并规定当这些事件发生时运行的函数。

    $(selector).live(event,data,function)

    live() 方法为被选元素添加一个或多个事件处理程序,并规定当这些事件发生时运行的函数.

    $(selector).on(event,childSelector,data,function,map)

    on() 方法在被选元素及子元素上添加一个或多个事件处理程序。map规定事件映射 ({event:function, event:function, ...}),包含要添加到元素的一个或多个事件,以及当事件发生时运行的函数。

    $(selector).off(event,selector,function(eventObj),map)

    off() 方法通常用于移除通过 on()方法添加的事件处理程序。

    推荐on()和off()
    使用on事件代理的写法:
    $('ul').on('click','li',function(){代理的绑定事件})

    jQuery 如何展示/隐藏元素?

    使用show()和hide()方法

    $('#box').show();
    $('#box').hide();
    $('#box').toggle();//切换隐藏或显示
    

    使用fadeIn()和fadeOut()淡入淡出

    $('#box').fadeIn();
    $('#box').fadeOut();
    $('#box').fadeToggle();//切换隐藏或显示
    

    使用slideUp()和slideDown()滑入滑出

    $('#box').slideUp();
    $('#box').slideDown();
    $('#box').slideToggle();//切换隐藏或显示
    

    jQuery 动画如何使用?

    animate(properties , duration , easing ,callback)自定义动画
    必须参数 properties 参数定义形成动画的 CSS 属性。
    可选的 duration 参数规定效果的时长。它可以取以下值:"slow"、"fast" 或毫秒。
    可选的 easing 可选。规定在动画的不同点中元素的速度。默认值是 "swing"。"swing" - 在开头/结尾移动慢,在中间移动快。"linear" - 匀速移动;
    可选的 callback 参数是动画完成后所执行的函数名称。
    PS:注意properties 驼峰命名。

    如何设置和获取元素内部 HTML 内容?如何设置和获取元素内部文本?

    $('#box').html('xxx');
    $('#box').html();
    $('#box').text('xxx');
    $('#box').text();

    如何设置和获取表单用户输入或者选择的内容?如何设置和获取元素属性?

    $('input').val('xxx');
    $('input').val();
    $('div').attr(attrName,attrValue);
    $('div').attr(attrName);

    任务8-11

    任务8
    任务9
    任务10
    任务11

    相关文章

      网友评论

        本文标题:jQuery

        本文链接:https://www.haomeiwen.com/subject/kioklxtx.html