jQuery 入门1

作者: QQQQQCY | 来源:发表于2017-08-01 12:42 被阅读0次

    题目1: jQuery 能做什么?

    选择网页元素
    改变结果集
    元素的操作:取值和赋值
    元素的操作:移动
    元素的操作:复制、删除和创建
    工具方法
    事件操作
    特殊效果
    AJAX
    http://devdocs.io/jquery/

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

    • 联系:

      1. jQuery对象:通过jQuery包装DOM对象后产生的对象;
      2. 两者之间可以相互转换;
    • 区别:

      1. jquery选择器得到的jquery对象和标准的 javascript中的document.getElementById()取得的dom对象是两种不同的对象类型,两者不等价;
      2. jQuery无法使用DOM对象的任何方法,同理DOM对象也不能使用jQuery里的方法. 乱使用会报错。
    • 相互转换:

      • jQuery对象转成DOM对象

        1. jQuery对象是一个数据对象,通过[index]的方法
        var $v = $("#v")  //  jQuery对象
        var v = $v[0]  //  DOM对象
        
        1. jQuery本身提供,通过.get(index)方法
        var $v = $("#v")  //  jQuery对象
        var v = $v.get(0)  //  DOM对象
        
      • DOM对象转成jQuery对象:
        对于DOM对象,只需用$()把DOM对象包装起来,就可得到jQuery对象

        var v=document.getElementById("v")  //  DOM对象
        var $v=$(v)  //  jQuery对象
        

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

    如何绑定事件


    • bind(type,[data],fn)
      为每个匹配元素的特定事件绑定事件处理函数。
      jQuery 3.0中已弃用此方法,请用 on()代替。

      • type: 含有一个或多个事件类型的字符串,由空格分隔多个事件。比如"click"或"submit",还可以是自定义事件名。
      • data: 作为event.data属性值传递给事件对象的额外数据对象
      • fn: 绑定到每个匹配元素的事件上面的处理函数
    • unbind(type,[data|fn]])
      bind()的反向操作,从每一个匹配的元素中删除绑定的事件。
      jQuery 3.0中已弃用此方法,请用 off()代替。
      如果没有参数,则删除所有绑定的事件。
      你可以将你用bind()注册的自定义事件取消绑定。
      如果提供了事件类型作为参数,则只删除该类型的绑定事件。
      如果把在绑定时传递的处理函数作为第二个参数,则只有这个特定的事件处理函数会被删除。

      • type: 删除元素的一个或多个事件,由空格分隔多个事件值。
      • fn: 要从每个匹配元素的事件中反绑定的事件处理函数
    • delegate(selector,[type],[data],fn)
      指定的元素(属于被选元素的子元素)添加一个或多个事件处理程序,并规定当这些事件发生时运行的函数。
      jQuery 3.0中已弃用此方法,请用 on()代替。
      使用 delegate() 方法的事件处理程序适用于当前或未来的元素(比如由脚本创建的新元素)。

      • selector: 选择器字符串,用于过滤器触发事件的元素。
      • type: 附加到元素的一个或多个事件。由空格分隔多个事件值。必须是有效的事件。
      • data: 传递到函数的额外数据
      • fn: 当事件发生时运行的函数
    • live(type, [data], fn)
      jQuery 给所有匹配的元素附加一个事件处理函数,即使这个元素是以后再添加进来的也有效。
      这个方法是基本是的.bind()方法的一个变体。使用 .bind()时,选择器匹配的元素会附加一个事件处理函数,而以后再添加的元素则不会有。为此需要再使用一次 .bind()才行
      从 jQuery 1.7 开始,不再建议使用.live()方法。请使用.on()来添加事件处理。使用旧版本的用户,应该优先使用 .delegate()来替代.live()

      • type: 一个或多个事件类型,由空格分隔多个事件
      • data: 传递给事件处理函数的附加参数
      • fn: 要从每个匹配元素的事件中反绑定的事件处理函数
    • on(events,[selector],[data],fn)
      在选择元素上绑定一个或多个事件的事件处理函数。
      on()方法绑定事件处理程序到当前选定的jQuery对象中的元素。在jQuery 1.7中,.on()方法 提供绑定事件处理程序所需的所有功能。

      • events: 一个或多个用空格分隔的事件类型和可选的命名空间,如"click"或"keydown.myPlugin" 。
      • selector: 一个选择器字符串用于过滤器的触发事件的选择器元素的后代。如果选择的< null或省略,当它到达选定的元素,事件总是触发。
      • data: 当一个事件被触发时要传递event.data给事件处理函数。
      • fn: 该事件被触发时执行的函数。 false 值也可以做一个函数的简写,返回false。
    • off(events,[selector],[fn])
      在选择元素上移除一个或多个事件的事件处理函数。

      • events: 一个或多个空格分隔的事件类型和可选的命名空间,或仅仅是命名空间,比如"click", "keydown.myPlugin", 或者 ".myPlugin".
      • selector: 一个最初传递到.on()事件处理程序附加的选择器。
      • fn: 事件处理程序函数以前附加事件上,或特殊值false.

    推荐使用哪种

    推荐使用.on()因为提供绑定事件处理程序所需的所有功能


    使用on绑定事件使用事件代理的写法

    <ul>
        <li></li>
        <li></li>
        <li></li>
    </ul>
    
      $('ul').on('click','li',function(){})
      //  选择父容器绑定事件,再在选择器中选择目标元素
    

    题目4:jQuery 如何展示/隐藏元素?

    • hide([speed,[easing],[fn]])
      隐藏显示的元素

      • speed: 三种预定速度之一的字符串("slow","normal", or "fast")或表示动画时长的毫秒数值(如:1000)
      • easing: (Optional) 用来指定切换效果,默认是"swing",可用参数"linear"
      • fn: 在动画完成时执行的函数,每个元素执行一次。
    • show(([speed,[easing],[fn]])
      显示隐藏的匹配元素。

      • speed: 三种预定速度之一的字符串("slow","normal", or "fast")或表示动画时长的毫秒数值(如:1000)
      • easing: (Optional) 用来指定切换效果,默认是"swing",可用参数"linear"
      • fn: 在动画完成时执行的函数,每个元素执行一次。
    • toggle([speed],[easing],[fn]
      如果元素是可见的,切换为隐藏的;如果元素是隐藏的,切换为可见的。

      • speed: 隐藏/显示 效果的速度。默认是 "0"毫秒。可能的值:slow,normal,fast。"
      • easing: (Optional) 用来指定切换效果,默认是"swing",可用参数"linear"
      • fn: 在动画完成时执行的函数,每个元素执行一次。

    • slideDown([speed],[easing],[fn])
      通过高度变化(向下增大)来动态地显示所有匹配的元素,在显示完成后可选地触发一个回调函数。

    • slideUp([speed,[easing],[fn]])
      通过高度变化(向上减小)来动态地隐藏所有匹配的元素,在隐藏完成后可选地触发一个回调函数。

    • slideToggle([speed],[easing],[fn])
      通过高度变化来切换所有匹配元素的可见性,并在切换完成后可选地触发一个回调函数。

    • fadeIn([speed],[easing],[fn])
      通过不透明度的变化来实现所有匹配元素的淡入效果,并在动画完成后可选地触发一个回调函数。

    • fadeOut([speed],[easing],[fn])
      通过不透明度的变化来实现所有匹配元素的淡出效果,并在动画完成后可选地触发一个回调函数。

    • fadeToggle([speed,[easing],[fn]])
      通过不透明度的变化来开关所有匹配元素的淡入和淡出效果,并在动画完成后可选地触发一个回调函数。

    • fadeTo([[speed],opacity,[easing],[fn]])

      • speed: 三种预定速度之一的字符串("slow","normal", or "fast")或表示动画时长的毫秒数值(如:1000)
      • opacity: 一个0至1之间表示透明度的数字。
      • easing: (Optional) 用来指定切换效果,默认是"swing",可用参数"linear"
      • fn: 在动画完成时执行的函数,每个元素执行一次。

    题目5: jQuery 动画如何使用?

    animate(params,[speed],[easing],[fn])

    用于创建自定义动画的函数。

    这个函数的关键在于指定动画形式及结果样式属性对象。这个对象中每个属性都表示一个可以变化的样式属性(如heighttopopacity)。注意:所有指定的属性必须用骆驼形式,比如用marginLeft代替margin-left

    而每个属性的值表示这个样式属性到多少时动画结束。如果是一个数值,样式属性就会从当前的值渐变到指定的值。如果使用的是hideshowtoggle这样的字符串值,则会为该属性调用默认的动画形式。

    jQuery 1.2 中,你可以使用 em% 单位
    jQuery 1.2 中,你可以通过在属性值前面指定+- 来让元素做相对运动
    jQuery 1.3中,如果duration设为0则直接完成动画。而在以前版本中则会执行默认动画。
    jQuery 1.8中,当你使用CSS属性在css()animate()中,将根据浏览器自动加上前缀(在适当的时候),比如("user-select", "none"); 在Chrome/Safari浏览器将设置为"-webkit-user-select", Firefox会使用"-moz-user-select", IE10将使用"-ms-user-select".


    • 参数
      • params: 一组包含作为动画属性和终值的样式属性和及其值的集合
      • speed: 三种预定速度之一的字符串("slow","normal", or "fast")或表示动画时长的毫秒数值(如:1000)
      • easing: 要使用的擦除效果的名称(需要插件支持).默认jQuery提供"linear" 和 "swing".
      • fn: 在动画完成时执行的函数,每个元素执行一次。

    • stop([clearQueue],[jumpToEnd])
      停止所有在指定元素上正在运行的动画。
      如果队列中有等待执行的动画(并且clearQueue没有设为true),他们将被马上执行

      • clearQueue: 如果设置成true,则清空队列。可以立即结束动画。
      • gotoEnd: 让当前正在执行的动画立即完成,并且重设show和hide的原始样式,调用回调函数等。
    • finish( [queue ] )
      停止当前正在运行的动画,删除所有排队的动画,并完成匹配元素所有的动画。
      当.finish()在一个元素上被调用,立即停止当前正在运行的动画和所有排队的动画(如果有的话),并且他们的CSS属性设置为它们的目标值(所有动画的目标值)。所有排队的动画将被删除。

      • queue:停止动画队列中的名称。
    • delay(duration,[queueName])
      设置一个延时来推迟执行队列中之后的项目。

      • duration: 延时时间,单位:毫秒
      • queueName: 队列名词,默认是Fx,动画队列

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

    • html([val|fn])
      取得第一个匹配元素的html内容。这个函数不能用于XML文档。但可以用于XHTML文档。
      在一个 HTML 文档中, 我们可以使用 .html() 方法来获取任意一个元素的内容。 如果选择器匹配多于一个的元素,那么只有第一个匹配元素的 HTML 内容会被获取。

      • val:用于设定HTML内容的值
      • fn:此函数返回一个HTML字符串。接受两个参数,index为元素在集合中的索引位置,html为原先的HTML值。
    • text([val|fn])
      取得所有匹配元素的内容。
      结果是由所有匹配元素包含的文本内容组合起来的文本。这个方法对HTML和XML文档都有效。

      • val:用于设置元素内容的文本
      • fn:此函数返回一个字符串。接受两个参数,index为元素在集合中的索引位置,text为原先的text值

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

    • val([val|fn|arr])
      获得匹配元素的当前值。
      • val:要设置的值
      • fn:此函数返回一个要设置的值。接受两个参数,index为元素在集合中的索引位置,text为原先的text值。
      • arr:用于 check/select 的值

    • attr(name|properties|key,value|fn)
      设置或返回被选元素的属性值。

      • name:属性名称
      • properties:作为属性的“名/值对”对象
      • key,value:属性名称,属性值
      • fn:返回属性值的函数,第一个参数为当前元素的索引值,第二个参数为原先的属性值。
    • removeAttr(name)
      从每一个匹配的元素中删除一个属性

      • name:要删除的属性名
    • css(name|pro|[,val|fn])
      访问匹配元素的样式属性。
      • name:一个或多个CSS属性组成的一个数组
      • pro:要设置为样式属性的名/值对
      • val:属性名
      • fn:此函数返回要设置的属性值。接受两个参数,index为元素在对象集合中的索引位置,value是原先的属性值。

    题目8: 使用 jQuery实现如下效果

    效果 - 链接

    题目9: 使用 jQuery 实现如下效果

    效果 - 链接

    题目10: 使用 jQuery 实现如下效果

    效果 - 链接

    题目11: 使用 jQuery 实现如下效果

    效果 - 链接

    相关文章

      网友评论

        本文标题:jQuery 入门1

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