jQuery

作者: 来人啊都给朕退下吧 | 来源:发表于2017-08-04 17:06 被阅读31次

    jQuery 能做什么?

    jQuery将JavaScript的代码进行了封装,处理了兼容性问题,提供API进行调用,让我们实现功能时不用再为兼容性而困扰,少写了许多代码。
    jQuery是一个JavaScript函数库,可以方便地:

    • 选择dom元素
    • dom操作
    • 事件处理
    • 特效处理
    • ajax
    • 链式操作

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

    区别:

    DOM对象 :W3C标准用于操作文档的API。具体点来说就是指 HTML 文本中的所有被标签标记的东西 ,在js里可以用 getElementById 等传统的方法获得的对象,拥有原生对象的属性和方法。
    jQuery对象:将DOM原生对象进行封装后得到的类数组对象

    注意:

    jQuery对象只能用jQuery对象的方法
    DOM对象只能使用DOM对象的方法

    转化:

    jquery提供了两种方法将一个jquery对象转换成一个DOM对象,[index]和get(index)。
    使用$(DOM对象)就可以将DOM对象转化为jQuery对象

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

    //bind用于绑定事件,古老写法,不推荐
    $(selector).bind(event,[data],function)
    
    //unbind用于解绑事件,古老写法,不推荐
    $(selector).unbind(event,[function])
    
    //delegate用于事件代理,古老写法,不推荐
    $(selector).delegate(childSelector,event,[data],function)
    
    //live() 方法为被选元素附加一个或多个事件处理程序,并规定当这些事件发生时运行的函数。不推荐使用
    $(selector).live(event,[data],function)
    
    
    

    .on( events [,selector ] [,data ], handler(eventObject) )
    增加事件处理函数

    1. events:事件类型和可选的命名空间,或仅仅是命名空间,比如"click", "keydown.myPlugin", 或者 ".myPlugin",一个或多个
    2. selector:选择器,用于过滤出被选中的元素中能触发事件的后代元素。
    3. data:传递给事件处理函数的event.data
      handler(eventObject):事件被触发时的执行函数。若该函数只是要执行return false,该参数位置可以直接简写成 false
    
    // 普通事件绑定,最简单的用法
    $('div').on('click', function(e){
        console.log(this); //点击的元素
        console.log(e); // 事件,e.target 事件的对象
    });
    // 事件委托或者事件代理,想让div 下面所有的span绑定事件,可以把事件绑定到div上
    $('div').on('click', 'span', function(e){
        console.log(this);
        console.log(e);
    });
    
    // 可以在绑定的时候给事件处理程序传递一些参数
    $('div').on('click', {name: 'Byron', age: 24}, function(e){
        console.log(e.data);
    });
    
    
    

    命名空间的作用:解绑事件时做一个区分

    click.hello事件解绑,但是click事件不受影响

       $('.box>ul').on('click',3,function(e){
          console.log(e.data)
        })
        $('.box>ul').on('click.hello','li',function(){
          console.log(this)
          var str = $(this).text()
          $('#wrap').text(str)
        })
        $('.box>ul').off('click.hello')
    
    
    

    .off( events [, selector ] [, handler ] )
    移除一个事件处理函数

    jQuery 如何展示/隐藏元素?

    • .hide([duration ] [,easing ] [,complete ])
      隐藏元素,没有参数的时候等同于直接设置display:none属性
    • .show( [duration ] [, easing ] [, complete ] )
      用于显示元素,用法和hide类似
    • .toggle( [duration ] [, easing ] [, complete ] )

    toggle是切换的意思,用来切换元素的隐藏、显示,类似于toggleClass
    事件处理套件也有一个名为.toggle()方法。哪一个被调用取决于传递的参数的设置

    1. duration:动画持续多久
    2. easing:表示过渡使用哪种缓动函数,jQuery自身提供"linear" 和 "swing"
    3. complete:在动画完成时执行的函数,先完成动画,后执行函数

    jQuery 动画如何使用?

    渐变

    • .fadeIn( [duration ] [, easing ] [, complete ] )
      通过淡入的方式显示匹配元素
    • .fadeOut( [duration ] [, easing ] [, complete ] )
      通过淡出的方式隐藏匹配元素
    • .fadeTo( duration, opacity [, easing ] [, complete ] )
      调整匹配元素的透明度,方法通过匹配元素的不透明度做动画效果
    • .fadeToggle( [duration ] [, easing ] [, complete ] )

    滑动

    • .slideDown( [duration ] [, easing ] [, complete ] )
      用滑动动画显示一个匹配元素
    • .slideUp( [duration ] [, easing ] [, complete ] )
      用滑动动画隐藏一个匹配元素
    • .slideToggle( [duration ] [, easing ] [, complete ] )
      用滑动动画显示或隐藏一个匹配元素

    自定义动画

    • .animate( properties [, duration ] [, easing ] [, complete ] )
      properties是一个CSS属性和值的对象,动画将根据这组对象移动。

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

    • html([string])
      读写两用的方法,用于获取/修改元素的innerHTML

    • $('div').html() //没有参数,获取元素的innerHTML

    • $('div').html('123') //有参数,参数内容即为修改后的元素innerHTML

    • text()读写两用的方法,和html方法类似,用于获取/修改元素的innerText值

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

    • .val([value])</br>
      读写双用的方法,用来处理input的value,设置和获取表单用户输入或者选择的内容,当方法没有参数的时候返回input的value值,当传递了一个参数的时候,方法修改input的value值为参数值
    $('input').val() //没有参数的时候返回input的value值
    $('input').val('newValue'); //当传递了一个参数的时候,将参数值设为input的value值
    $('input')[0].value = "hello" 用原生DOM的方式设置值
    
    
    
    • .attr(attributeName)</br>
      获取元素的属性。
     <input type="text" value="hello">
        <script>
            console.log($('input').attr("type")) //text
        </script>
    
    • .removeAttr(attributeName)</br>
      移除特定元素的某个属性。

    为匹配的元素集合中的每个元素中移除一个属性

    相关文章

      网友评论

        本文标题:jQuery

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