美文网首页
日夜谈——JQuery动画和Ajax

日夜谈——JQuery动画和Ajax

作者: Sheldon_Yee | 来源:发表于2017-01-21 21:50 被阅读28次
    1. jQuery 中, $(document).ready()是什么意思?

    $(document).ready()是指只要DOM就绪就可以操纵了,不需要等待所有图片下载完毕。很显然,把网页解析为DOM树的速度比页面中的所有关联文件加载完毕的速度快很多。
    注:
    我们需要注意的是,由于$(document).ready()方法内注册的事件,只要DOM准备好了就会被执行,因此可能此时元素的关联文件未下载完。例如与图片有关的HTML下载完毕,并且已经解析为DOM树了,但很多可能图片未加载完毕,所以图片的高度和宽度的属性此时不一定有效。要解决这个方法我们可以用JQ另一个关于加载页面的方法——load()方法。

    ready方法的写法

    正常写法:
        $(document).ready(function(){
            //to do .......
        })
    简写写法:
            $(function(){
            //to do .....
        })
    
    2.$node.html()和$node.text()的区别?
    $node.html()设置和返回所选元素的内容,内容包括(html内容,text内容)
    
    $node.text()设置和所选元素的文本。
    
    3.$.extend()的作用和用法?

    作用:

    1. 如果我们想将两个或者多个对象的值插入到目标对象里面,我们可以使用$.extend(target,obj1,obj2,....)。

    2. 如果只有一个参数提供给$.extend(),这意味着目标参数被省略。在这种情况下,jQuery对象本身被默认为目标对象。这样,我们可以在jQuery的命名空间下添加新的功能。这对于插件开发者希望向 jQuery 中添加新函数时是很有用的。
      语法

    语法:
    $.extend(Bollean, target ,obj1,obj2...... );
    其作用的是将obj1和obj2合并到target里面,并返回target。第一个数值代表是否进行深拷贝.
    

    用法:

    var res = $.extend({},{name:'sheldon',sex:'boy'},{name:'peter',age:20,hobby:'swim'});
    console.log(res);
    Object {name: "peter", sex: "boy", age: 20, hobby: "swim"}
    后面相同的属性的值会后者覆盖前者。
    

    extend()的深拷贝:

    $.extend()的深拷贝
    extend(boolean,target,obj1,obj2...)
    第一个参数boolean代表是否进行深度拷贝;
    
    var result=$.extend( true, {},{ name: "John", location: {city: "Boston",county:"USA"} },{ last: "Resig", location: {state: "MA",county:"China"} } ); 
    合并后的结果就是: 
    result={name:"John",last:"Resig",location:{city:"Boston",state:"MA",county:"China"}}
    
    如果为false:
    var result=$.extend( false, {},{ name: "John", location:{city: "Boston",county:"USA"} },{ last: "Resig", location: {state: "MA",county:"China"} }); 
    
    合并后的结果就是:
     result={name:"John",last:"Resig",location:{state:"MA",county:"China"}}
    
    4.JQuery 的链式调用是什么?

    当jQuery的方法的返回值仍为当前对象时可以继续调用该对象的方法,这样就形成一种链式调用;

    example:

    $('.btn1').addClass('hover').removeClass('active').
    
    5.JQuery ajax 中缓存怎样控制?

    jquery中调用ajax封装函数时,传入参数中的cache可控制缓存。cache(默认为true):如果设置为 false ,浏览器将不缓存此页面。注意: 只有当使用GET方法时,设置cache为false是有用的,设置cache为 false将在 HEAD和GET请求中正常工作,相当于在GET请求参数中附加”_={timestamp}”,这样每次发起请求都会加上不同时间戳形成新的请求并由后台响应,不会从本地缓存中查找。而当使用POST方法时,则每次都会被认为是新的请求,不会缓存页面。

    6.JQuery 中 data 函数的作用

    定义:
    在匹配元素上存储任意相关数据 或 返回匹配的元素集合中的第一个元素的给定名称的数据存储的值。

    具体操作看demo

    7.代码一
    //1.给元素 $node 添加 class active,给元素 $noed 删除 class active
    $node.addClass('active');//添加calss
    $node.removeClass('active');//删除calss
    
    //2.展示元素$node, 隐藏元素$node
    $node.show();//展示
    $node.hide();//隐藏
    
    
    //3.获取元素$node 的 属性: id、src、title, 修改以上属性
    $node.attr('id');//获取
    $node.attr('src');
    $node.attr('title');
    
    $node.attr('id','value');//修改
    $node.attr('src','value');
    $node.atrr('title','value');
    
    //4.给$node 添加自定义属性data-src
    $node.attr('data-src','');
    
    //5.在$ct 内部最开头添加元素$node
    $ct.prepend($node);
    
    //6.在$ct 内部最末尾添加元素$node
    $ct.append($node);
    
    //7.删除$node
    $node.remove('<div class="btn"></div>');
    
    //8.把$ct里内容清空
    $ct.empty();
    
    //9.在$ct 里设置 html <div class="btn"></div>
    $ct.html()
    
    //10.获取、设置$node 的宽度、高度(分别不包括内边距、包括内边距、包括边框、包括外边距)
    $node.width();
    $node.height();
    $node.innerWidth();
    $node.innerHeight();
    $node.outerWidth();
    $node.outerHeight();
    $node.outerHeight(true);
    $node.outerWidth(true);
    
    //11.获取窗口滚动条垂直滚动距离
    $(window).scrollTop()
    
    //12.获取$node 到根节点水平、垂直偏移距离
    $node.offset();
    
    //13.修改$node 的样式,字体颜色设置红色,字体大小设置14px
    $node.css({'color':'red','font-size':'14px'})
    
    //14.遍历节点,把每个节点里面的文本内容重复一遍
    $node.each(function(index,ele){
        console.log(this.text());
    })
    
    //15.从$ct 里查找 class 为 .item的子元素
    $ct.find('.item');
    
    //16.获取$ct 里面的所有孩子
    $ct.children();
    
    //17.对于$node,向上找到 class 为'.ct'的父亲,在从该父亲找到'.panel'的孩子
    $node.parent('.ct').find('.panel')
    
    //18.获取选择元素的数量
    $node.length();
    
    //19.获取当前元素在兄弟中的排行
    $(this).index();
    
    代码二

    地址

    代码三
    本地server实验成功.png

    代码地址

    感谢可能是假的观众:



    版权归饥人谷peter和饥人谷所有,若有转载,请注明来源

    相关文章

      网友评论

          本文标题:日夜谈——JQuery动画和Ajax

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