JS18

表单form 

        获取方法

           1.通过id

           2.通过name

           3.document.forms;

        属性

           elements  --所有的表单元素

           document.myform.elements[0]  获取form第一个表单元素

        方法

           submit() document.myform.submit(); --可将按钮放在form外面提交

           reset() document.myform.reset(): --可将按钮放在form外面重置

按钮button

        方法:

            1、focus()

            2、blur()

            3、click() --设置按钮被点击

单选框复选框

        方法:

            1、focus()

            2、blur()

            3、click() --全选全不选

文本域textarea

       方法:

       1、 focus()

       2、 blur()

       3、 select()

补充知识点:window.clipboardData 剪切板操作 --仅IE支持

        方法:

             1.clearData(format);    --删除剪切板指定格式的内容

             2.getData(format);      --获取剪切板指定格式的内容

             3.setData(format,content); --设置剪切板内容及格式

下拉菜单select

        下拉菜单的muliple属性(多选)双select的应用

        属性

            options    菜单的集合

            length      下拉菜单的长度

            index 菜单的索引

        方法

            add()    --添加

            remove() --移除 sel.remove(sel.index)

            focus()  --获取焦点

            blur()  --失去焦点

            call() 和 apply()的应用

call() 和 apply()的应用

1. call() 的用法

        改变this的指向(上下文的环境) ------函数的方法

        实例一:

         function User(){

                    this.name='大毛';

                    this.showname = function(){

                                    console.log(this.name);

                    }

          }

          function Show(){

                      this.name='二毛';

           }

           var user = new User();

           var show = new Show();

           user.showname();    /// -----返回大毛

           user.showname.call(show);////---返回二毛  this的指向发生改变

        实例二:

        var index = '农妇三拳';

        function Getname(){

                    this.index = '农夫果园';

        }

                    function Demo(){

                    this.index='嘀嘀打人';

                    this.toshow = function(){

                                 console.log(this.index);

                    }

           }

           var d = new Demo();

            d.toshow();              //this 是d对象

            d.toshow.call();            //this 是window对象

            d.toshow.call(new Getname);    //this 是实例化得到的Getname对象

2.call的继承性

        function DD(){

                this.username = '小明',

                this.age = 12,

                this.say = function(){

                             console.log(this.username+','+this.age);

               }

        }

        function FF(){

                DD.call(this);

        }

        var f = new FF();

        f.say();

3. apply()的用法

        与call类似。参数形式不同

        调用一个对象的一个方法,以另一个对象替换当前对象。

        即:改变this的指向    继承性

        1.call(obj,param1,param2,param3.....);

        2.apply(obj,[paran1,param2,param3...]);

        没有参数的情况下

                ----与call一样

        有参数的情况下

               function Getname(name,age){

                          this.name= name;

                          this.age= age;

                          this.toshow = function(){

                                       console.log(this.name+'今年'+this.age);

                         }

                }

                function Toshow(name,age){

                //Getname.apply(this,arguments); //apply的方法继承

                //Getname.call(this,name,age); //call的方法继承

                //Getname.apply(this,name,age); //错误的参数形式

                }

                var show = new Toshow('大毛',21);

                show.toshow();

函数声明的提前与程序的预执行

        (function(){

                function fn1(){ return 100}

                console.log(fn1());

                function fn1(){ return 200}

        })()

        试题:

        demo();

        demo = function(){alert(1)}

        demo();

        function demo(){alert(2)};

对象传参的引用关系

        function demo(arr){

              //arr.push(4);

              arr = [1,2,3,4];

        }

        demo([1,2,3]);

闭包

1.函数的自调用

2.循环中找到对应元素的索引 --一组控制另外一组

3.模块化开发 (面向对象封装)

AJAX

        async Javascript and xml    异步的ajax和xml

什么是异步

        定时器的异步

异步的作用

1、传统的网页(不使用 AJAX)如果需要更新内容,必须重载整个网页页面。

2、通过在后台与服务器进行少量数据交换,AJAX 可以使网页实现异步更新。

3、WebApp的开发: 后端程序只提供数据接口, 所有的数据需要ajax请求返回, JS动态生成

概述

1、XMLHttpRequest 对象提供了对 HTTP 协议的完全的访问。

2、XMLHttpRequest 可以同步或异步地返回 Web 服务器的响应,并且能够以文本或者一个 DOM 文档的形式返回内容。 尽管名为 XMLHttpRequest,它并不限于和 XML 文档一起使用:它可以接收任何形式的文本文档。

第一步:获取XML对象

new XMLHttpRequest()                        在所有现代浏览器中(包括 IE 7)

new ActiveXObject("Microsoft.XMLHTTP")  在 Internet Explorer 5 和 6 中

XML对象的常用属性

1、readyState http请求状态

        0  Uninitialized  初始化状态。XMLHttpRequest 对象已创建或已被 abort() 方法重置。

        1  Open        open() 方法已调用,但是 send() 方法未调用。请求还没有被发送。

        2  Send        Send() 方法已调用,HTTP 请求已发送到 Web 服务器。未接收到响应。

        3  Receiving  所有响应头部都已经接收到。响应体开始接收但未完成。

        4  Loaded      HTTP 响应已经完全接收。

2.status 由服务器发过来的响应状态码

        200 响应成功

        304 重定向 缓存

        403 没有权限

        404 请求的文件没有找到

        503 服务器宕机

        504 网关超时

3.statusText 由服务器发过来的响应状态语句

4.responseText 获取 服务端的响应文本

XML对象的常用方法

第二步:初始化请求

        open() 初始化 HTTP 请求参数,例如 URL 和 HTTP 方法,但是并不发送请求。

        open(method, url, async, username, password)

第三步: 发送请求

1、send() 发送 HTTP 请求,使用传递给 open() 方法的参数,以及传递给该方法的可选请求体。

2、setRequestHeader() 向一个打开但未发送的请求设置或添加一个 HTTP 请求。POST

3、getAllResponseHeaders() 把 HTTP 响应头部作为未解析的字符串返回。

4、getResponseHeader() 返回指定的 HTTP 响应头部的值。其参数是要返回的 HTTP 响应头部的名称

XML对象的常用事件

第四步:事件判断 接收请求内容

        onreadystatechange 每次 readyState 属性改变的时候调用的事件句柄函数

GET请求和POST请求

1、get: 将参数拼接到url上

2、post: 将参数拼接到send()中

        --xhr.setRequestHeader("content-type","application/x-www-form-urlencoded");

区别:

1、get从服务器获取数据,post向数据库提交数据。

2、get传输的数据较小,一般不大于2kb,post传输的数据量较大。

3、get安全性较低,post安全性较高,但是get执行效率高。

4、get请求时,服务器使用Request.QueryString获取信息,post请求服务器使用Request.Form

5、操作数据的增删改查时,get用于查询,post用于修改删除添加。

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

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,633评论 18 139
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,598评论 18 399
  • 工厂模式类似于现实生活中的工厂可以产生大量相似的商品,去做同样的事情,实现同样的效果;这时候需要使用工厂模式。简单...
    舟渔行舟阅读 7,727评论 2 17
  • Address:https://www.zybuluo.com/XiangZhou/note/208532 Exp...
    天蠍蒗漫阅读 11,289评论 2 55
  • 旅途中第一次遇到如你一般的人 于千万人之中与你相遇 可我为何如此难过……
    南音烟雨阅读 287评论 0 3