任务二十六~jQuery常用方法 & ajax

问答部分

一、jQuery中, $(document).ready()是什么意思?和window.onload 的区别? 还有其他什么写法或者替代方法?

  • $(document).ready()~指当DOM准备就绪时,指定一个函数来执行
  • window.onload~指当页面全部加载完成(包括页面内容、图片、资源等)时执行相应的函数
  • 两者的区别:
  • 执行时间不同:$(document).ready()只需要当DOM加载好即可;window.onload必须要等到页面所有元素加载完后才能执行
  • 编写个数不同:$(document).ready()可以同时编写多个,并根据编写顺序执行;window.onload只能编写一个,如果编写多个也只执行最后一个
  • $(document).ready()的简化写法为:$(handler);window.onload无简写方法

二、$node.html()和$node.text()的区别?

  • .html()~获取集合中第一个匹配元素的HTML内容
  • .text()~获取匹配元素集合中每个元素的合并文本,包括他们的后代
    比如如下代码:
<!doctype html>
<html>
    <head>
        <meta charset="utf-8"/>
        <title>jQuery</title>
    </head>
    <body>
        <p>jirengu<span>hunger</span></p>
    </body>
    <script src="http://apps.bdimg.com/libs/jquery/2.1.4/jquery.js"></script>
    <script>
        $(function(){
            console.log($("p").html());
            console.log($("p").text());
        });
    </script>
</html>

结果如下图:


问答2

三、$.extend 的作用和用法?

  • 作用:将两个或更多对象的内容合并到第一个对象
  • 用法如下:
//目标对象为{},这种用法是合并多个对象,但是不改变这些对象
jQuery.extend({},object1,object2);
//合并两个对象
jQuery.extend(target[,object1][,object2]);
//deep为true时,合并成为递归(即深拷贝)
jQuery.extend([deep],target[,object1][,object2]);

具体如下示例:

  • 1~
 jQuery.extend(target[,object1][,object2]);

当提供两个或多个对象给$.extend(),对象的所有属性都添加到目标对象(target参数);目标对象(第一个参数)将被修改,并且将通过$.extend()返回;如果只有一个目标参数提供给$.extend(),意味着目标参数被省略;如果目标对象(target参数)的某个参数在附加对象([,object1][,object2])中没有,那么这个属性会在合并 之后被保留;同理,如果附加对象中某个属性在目标对象中没有,这个属性也会在合并之后被保留;如果目标对象的某个属性在附加对象中存在,那么这个属性的值会被附加对象的值所覆盖。如下代码

            var defaults = {
                name:"frank",
                age:25,
                height:176
            };
            var options = {
                name:"hunger",
                age:26,
                weight:63,
                sex:"male"
            };
            $.extend(defaults,options);
            console.log(defaults);

结果如下图:


.extend()用法1
  • 2~
jQuery.extend({},target[,object1][,object2]);

合并defalults和options对象,并且不修改defaults对象;这是常用的插件开发模式,如下代码

          var defaults = {
              name:"frank",
              age:25,
              height:176
          };
          var options = {
              weight:63,
              sex:"male"
          };
          var newObject = $.extend({},defaults,options);
          console.log(defaults);
          console.log(options);
          console.log(newObject);

结果如下图:


.extend()用法2
  • 3~
jQuery.extend(true,target[,object1][,object2]);

当第一个参数为true时,合并会成为递归(即深拷贝),此时,如果目标对象中的某个属性在附加对象中存在时,那么这个属性的值将会合并,如下代码

            var defaults = {
                name:"frank",
                age:25,
                body:{height:176,weight:63}
            };
            var options = {
                name:"hunger",
                sex:"male",
                body:{height:180}
            };
            $.extend(true,defaults,options);
            console.log(defaults);

结果如下图:


.extend()用法3

四、JQuery 的链式调用是什么?

  • JQuery 的链式调用是指对一个对象连续的使用jQuery方法(原理是:执行完一个方法后就返回对象本身(return this),然后对象继续执行后面的方法),比如如下代码
$("#ct").removeClass("hover").css("color","red").hide("slow");

以上代码对id为ct的对象做了以下操作:移除了hover的class,设置了字体颜色,并隐藏;这样做的好处是代码简洁易读,减少了代码的重复性,提高了性能


五、JQuery ajax 中缓存怎样控制?

  • JQuery ajax 中利用cache参数来控制缓存,默认的值为true(即缓存页面);如果设置为 false ,浏览器将不缓存此页面

六、jquery 中 data 函数的作用?

  • .data(key,value)~在匹配元素上存储任意相关数据,如下代码
        $("body").data("foo", 52);
        $("body").data("bar", { myType: "test", count: 40 });
        $("body").data({ baz: [ 1, 2, 3 , 4 , 5 , 6 ] });
        console.log($("body").data("foo"));
        console.log($("body").data());
问答6
  • .data(key)~返回匹配的元素集合中的第一个元素的给定名称的数据存储的值,如下代码
        $("body").data("foo");
        $("body").data("bar", "foobar");
        console.log($("body").data("foo"));//undefined,如果指定元素上
没有设置任何值,那么将返回undefined
        console.log($("body").data());//foobar
问答6

代码部分



  • 代码三
  • 代码三github
  • 代码三本地预览gif
    代码三

    版权声明:本教程版权归邓攀和饥人谷所有,转载须说明来源!!!!
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 202,607评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,047评论 2 379
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 149,496评论 0 335
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,405评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,400评论 5 364
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,479评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,883评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,535评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,743评论 1 295
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,544评论 2 319
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,612评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,309评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,881评论 3 306
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,891评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,136评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,783评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,316评论 2 342

推荐阅读更多精彩内容