jQuery

作者: 好好顽 | 来源:发表于2017-07-07 15:38 被阅读31次

    题目1: jQuery 能做什么?

    1. 方便快捷获取DOM元素 如果使用纯JavaScript的方式来遍历DOM以及查找DOM的某个部分编写很多冗余的代码,而使用jQuery只需要一行代码就足够了。例如,找到所有应用了.content class样式的div中所有的P标签,只需要下面的一行代码:
    $('div.content').find('p');
    
    1. 动态修改页面样式 使用jQuery我们可以动态的修改页面的CSS即使在页面呈现以后。jQuery仍然能够改变文档中某个部分的类或者个别的样式属性。例如,找到页面所有的ul标签的第一个li子标签,然后为它们增加名为active的样式,代码如下:
    $('ul > li:first').addClass('active');
    
    1. 动态改变DOM内容 使用jQuery我们可以很容易地对页面DOM进行修改,例如,为ID为"Container"的元素添加一个链接:
    $('#container').append('<a href="more.html">more</a>');
    
    1. 响应用户的交互操作 jQuery提供了截获形形色色的页面事件(比如用户单击某个链接)的适当方式,而不需要使用事件处理程序拆散HTML代码。此外,它的事件处理API也消除了经常困扰Web开发人员浏览器的不一致性。
    $('button.show-details').click(function() {
    $('div.details').show();
    });
    

    上面的代码表示:为使用的.show-details样式的button元素添加一个click事件,事件就是:显示使用.details样式的DIV。

    1. 为页面添加动态效果jQuery中内置的一批淡入、擦除之类的效果,以及制作新效果的工具包,为此提供了便利。
    $(function () {
    $("#btnShow").click(function () {
    $("#msubject").hide("slow");
    });
    });
    
    1. 统一Ajax操作
      jQuery统一了多种浏览器的Ajax操作,使得开发人员更多的专注服务器端开发。
    function (data, type) {
    // 对Ajax返回的原始数据进行预处理
    return data // 返回处理后的数据
    }
    
    1. 简化常见的JavaScript任务。 除了这些完全针对文档的特性之外,jQuery也改进了对基本的JavaScript数据结构(例如迭代和数组操作等)。
    $.each(obj, function(key, value) {
    total += value;
    });
    

    题目2: jQuery 对象和 DOM 原生对象有什么区别?如何转化?
    jQuery 对象是 DOM 对象被 jquery 包装后产生的对象,属于 jQuery 独有,可以使用 jQuery 的方法。
    DOM 对象,就是原生的 DOM 对象。
    jQuery 对象不等于DOM 对象,各自使用各自的方法。

    var domObj = document.getElementById("btn");
    var jQueryObj = $("#btn");
    
    //   domObj → jQueryObj
    $(domObj);
    
    //  jQueryObj → domObj
    jQueryObj[0] 
    jQueryObj.get(0)
    //  eq(0)返回的还是jQuery对象,而eq(0)[0]是DOM对象
    

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

    绑定事件:

    • $("#btn").events([function(){}])

    • $("#btn").on(events[, selector][, data], handler(eventObject))

    • $(#btn).trigger(events)

    • bind:
      .bind( eventType [, eventData ], handler )
      为元素绑定事件,已被弃用。

    • unbind
      .unbind( eventType [, handler ] )
      取消元素的绑定事件,已被弃用。

    • delegate
      .delegate( selector, eventType, eventData, handler )
      为元素绑定事件,且指定元素为特定根元素的子元素。以后有新的该元素出现,事件同样生效。
      已弃用。

    • live
      .live( events [, data ], handler )
      为元素绑定事件,不仅仅是现在存在,也包括以后该元素新出现后。
      已经弃用。

    • on
      .on( events[, selector][, data ], handler(eventObject) )
      事件绑定函数,现在推荐的写法,可绑定一个或多个事件。

    • off
      .off( events, selector[, handler ] )
      取消元素的事件绑定,现在推荐的写法。

    使用on绑定事件使用事件代理的写法
    .on(events, selector[, data], handler)
    events:事件类型
    selector:触发事件的元素选择器(事件绑定元素的后代元素),这样就形成了事件代理。
    data:事件处理函数需要接收的参数
    handler:事件处理函数

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

    $("#btn").show()
    $("#btn").hide()
    实际使用了 show hide 两个 jQuery 动画函数,但是没有传递参数,相当于立即 显示 / 隐藏

    其它方法的思路:通过 jQuery 设置元素的 display 为 none 即隐藏。取消设置即可显示。

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

    .hide([duration ] [,easing ] [,complete ])
    .show( [duration ] [, easing ] [, complete ] )
    .toggle( [duration ] [, easing ] [, complete ] )
    .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 ] )
    .animate( properties, options )
    .stop( [clearQueue ] [, jumpToEnd ] )
    

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

    $("#btn").html()
    $("#btn").text()
    //无参,获取内容;带参,设置内容。
    

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

    $("#input").val()//获取表单输入内容
    $("#input").val(String)//设置表单输入内容
    $("#input:checked").val()//获取表单选择内容
    $("#input:checked").val(String)//设置表单选择内容
    $('.target').attr(String)//获取元素属性
    $('.target').attr('src',$img.attr('data-img'))//设置元素属性
    

    题目8: 使用 jQuery实现如下效果
    http://js.jirengu.com/litumimani/1/edit

    题目9: 使用 jQuery实现如下效果
    http://js.jirengu.com/johowabari/1/edit

    题目10: 使用 jQuery实现如下效果
    http://js.jirengu.com/vayefeseme/1/edit

    题目11: 使用 jQuery实现如下效果
    http://js.jirengu.com/sujugobaho/1/edit

    相关文章

      网友评论

        本文标题:jQuery

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