别让“自律”毁了您的生存

 

1、盲目自律才会毁了生活

时间:2016-10-25 19:05

开辟微信搜索栏,输入“自律”二字,各样热文一览无余:

 

“自律,是妇人最贵的化妆品”

——介绍

“自律的人有多厉害?”

1、JavaScript简介
    JavaScript是依据对象和事件驱动的脚本语言,首要行使在客户端。
    特点:
        交互性:新闻的动态交互
        安全性:不得以一贯访问当地硬盘
        跨平台性:只假如能够解析JS的浏览器都得以实施,与平台毫不相关

“自律到最好的人,拥有了开挂的人生”

    基于对象:
        提供了无数目的,而已一贯动用。
    事件驱动:
        HTML做出的网站都以“静态效果”,而JavaScript能够兑现“动态”效果。
    客户端:
        指浏览器。
    JS与Java的区别:
        JS是网景集团费用的一种脚本语言,能够在具有的主流浏览器中运转。
        JS是依据对象的,而Java是面向对象的。
        JS只须要分析就足以推行,而Java需求先编译成字节码文件,再实施。
        JS是一种弱类型语言,而Java是一种强类型语言。

“世界正在奖励自律的人”

    JavaScript语言组成:
        核心:ECMAScript
            ECMA(亚洲计算机协会),JS语法由该组织制订。
        文档对象模型:DOM
            Document Object Model
        浏览器对象模型:BOM
            Browser Object Model

“自律的人生,到底有多爽?”

② 、JavaScript与HTML结合情势(三种)
    第一种:
        <script type=”text/javascript” > JS代码 </script>
    第1种:使用script标签引入外部js文件。
        <script type=”text/javascript” src=”js文件路径” >
</script>
        可是,当引入外部js文件时,script标签内不能够再写别的的js代码。
        
③ 、JavaScript原始类型和注解变量
    基本语法:
        变量、函数、运算符区分轻重缓急写。
        变量是弱类型的:(原始类型)

“你的不自律,正在慢慢毁掉你”

            var a = 10;
            var b = true;
            var c = “hello world”;
        多样原始类型:
            string、number、boolean、null、undifined
            null表示对象引用为空。
            undifined表示定义了变量不过从未赋值。
        每行结尾的支行可有可无,建议编写。
        两连串型的评释:
            单行注释:// 注释内容
            多行注释:/* 注释内容 */

……

        typeof运算符:
           
通过typeof()运算符,能够查阅变量的项目,typeof(变量名),全数引用的品种都以object。
        通过instanceof运算符能够消除typeof对象类型判断的标题。
        区分undefined和null:
           
变量定义了未起头化大概访问对象不存在的性质,会产出undefined。
            访问的目的不设有时,会出现null。

往下翻,竟然还有十几页,总共19247条结果。

        全局变量和一些变量:
           
全局变量:在script标签里面定义八个变量,那几个变量在页面中js部分都能够应用
            局地变量:在措施内部定义多少个变量,只幸好措施内部选用。

当外界纷纭鼓吹自律的利益时,假若真的像那么去“自律”了,反而大概会毁了祥和的生活。

4、JavaScript的语句
    if、switch、for、while、do-while
    switch语句:
        JDK1.7版本之后协助了String类型,而JS中扶助具有的数据类型。

林芳就是如此三个小青年。常常灰头土脸地挤大巴去上班,好不简单下班了,当然要放松放松,刷刷剧,打打游戏,看看娱乐音信。当群众大号们跟约好了貌似,初步鼓吹自律的根本时,林芳被爆冷门点醒:小编不能够再那样下去了!笔者要约束!

⑤ 、JavaScript的运算符
    JavaScript中不区分整数和小数,所以除法中平昔不整数,会油但是生小数。
        alert(123 / 1000 * 一千);,输出结果为123。
   
字符串与数字相加,是字符串连接,若是是相减,则字符串直接转换来数字再拓展相减。
 
  boolean类型可以拓展览演出算,false是0只怕null,非0或非null是true,暗中同意用1出示。

说干就干!她及时遵照文中所倡导的那么,专门买二个梦想台式机,给协调定了广大安排,列下了详实的打卡表。她要坚韧不拔早睡早起,读书方今辰,持之以恒好好吃早餐,每一天磨炼半钟头,下载了种种学习App,背单词的、读书的、听书的……对了,外语不可能丢下,还要学保加Cordova语,学时间管理,报各类网络课程,听大佬们传授成功经验……

    NaN:
        not a number:非数字。
        属于number类型。
        用来表示数值的一种情状,一种不正规的气象。
        一般景观下会在总结出现谬误的时候出现。
        判断当前的数据类型是不是是NaN的重点字:isNaN()
           若是结果是非数字:true
           要是结果是数字:false
    ==和===的区别:
        ==判断的是值,和档次无关。
        ===既判断值,又判断项目。

生活强度一下子加大,节奏弹指间变快。从前懒散的生存情景一下子不翼而飞了,路上境遇他时,感觉他走路都带风,每分每秒都在赶时间。

⑥ 、99乘法表示例
    <script type=”text/javascript”>

一天24小时根本不够用,揉开了掰碎了也完不成那么些职务。经常在夜间临睡前看着还没形成的职责单衰颓不已,责怪自己。自律的补益还没见到呢,本身就曾经快要被焦虑拖垮了。

        for(var i = 1; i < 10; i++)

更别提工作了,状态越来越差,常常能应付的干活也变得艰辛起来,别说完美地搞好,甚至还会因为精力不足,出现许多小错误。

        {

那多少个布署表就如催命的鬼,3个个钻在脑里催:这么多还没做完呢!你的约束呢?

            for(var j = 1; j < i + 1; j++)

再看看他时,她又过来到了在此之前的生活状态,甚至更不佳:以前他还可以自小编陶醉,安稳过好小生活。今后她变得更拖沓、更放纵,甚至有个别自暴自弃——反正本身就算不得已自律,作者真是太退步了。果然,作者正是那种无法不负众望的人。

            {

那哪儿是束缚?这肯定是在找虐。

                document.write(j + ” * ” + i + ” = ” + (i * j) +
”  “);

2、自律失利是因为只学格局,不学精髓

            }

封锁自身并从未错,它之所以能被大千世界接受,也是因为它的确有效,成功的人差不离自律,可是自律的人不肯定都会中标。

            document.write(“<br/>”);

成都百货上千人误会了约束,只学到了约束的花样,而从未学到自律的精髓。

        }

盲目自律,缺少自小编认知。过三人就如林芳一样,看到自律的补益,就及时想也不想地就去做,其实,外人的法门方法对友好是还是不是有用、是或不是适用,那都急需先想领悟了,再去行动。他能每日五点起来,你3个上夜班的,半夜两点到家睡下,早晨五点百折不回起床,那不是自作者加害嘛。

    </script>

你是怎么的?你的长短处是如何?哪些措施适合您?哪些措施只可以听一听一笑了之?你供给哪方面包车型地铁成人?

7、JavaScript数组
    三种概念格局:
        var arr = [1, “2”, true];
        var arr = new Array(5);
        var arr = new Array(1,2,3);
    数组有length属性。
    数组的长度是可变的。
    数组能够存放分化品种的多寡。

除非在科学的自个儿认知基础上,才能找到自律的确实方向。盲目地约束,只怕只是竹篮打水一场空,而且还累的要死。

8、函数
    普通函数:
        function method(){ }
        function method2(a, b) { return a + b;}
        参数列表中不要求写var,直接写变量名。

罔顾事实,强行自律。看人家分享ATENZA腰、人鱼线,想着自个儿也要有。所以要天天去健身,也要练出好身材。不是说了吗?“自律,是妇女最贵的化妆品”,为了美,必须自律!然而大姐,你有旧年的腿伤你忘啦?那是前边盲目去学羽毛球摔坏的。一个深蹲,只怕你就得回医院再度来过。

    匿名函数:
        var add = function method(a, b) { return a + b; }
        通过add(1, 2);实行调用。

可是你说,小编任由!自律才能美,小编正是得自律,不然小编就会变成身材走样的黄脸婆。嗯……先问问你的腿答不承诺吗!

    内置对象:(动态函数)
        使用到js中的1个松手对象:Function
        var add = new Function(“参数列表”, “方法体和再次回到值”);

成功职员之所以成功,不完全是因为自律,还有个人条件和能源的加持。借使始终效仿,罔顾自个儿的生活其实,付出的大概不只是岁月,还有任何意外的代价。

        var args = “”;
        var body = “”;
        var add = new Function(args, body);

跟个性作对,只可以瓦解土崩。人类天生趋利避害,当自律只好带来忧伤感受的时候,当然不能够百折不挠下去。大家会用各样措施来避开它,比如蘑菇、比如下落做事质量。

九 、script标签放置的职位
    理论上能够置身任意地点。
   
然则鉴于HTML解析是由上到下的,所以平常景况下位于</body>标签之后。

封锁本人就富含自然的约束性,约束本身的种种欲望,而欲望是大家的性情。如若控制好成就感和平条约束感之间的平衡,自律是能够坚定不移下去的。就如驴子,被胡萝卜引诱着前进,也就能忽视赶路的麻烦。不过不对的约束,伤心感是过量成就感的。把手放在火上,疼了就会把手缩回来。当所谓的“自律”令人那么痛心,出于天性,自然也就不会再坚定不移下去了。

⑩ 、JS的章程重载
    

《意志力》一书中涉嫌,人类的坚定是简单的。倘若意志力全体用来控制欲望、抵抗难过,哪还有力气去达成指标。

——JavaScript第三天计算
1、什么是JavaScript
贰 、js和HTML的重组格局
叁 、js的数据类型
4、js的语句
五 、js的运算符
6、js的数组
7、js的函数
八 、js的全局变量和局部变量
⑨ 、script标签地点
⑩ 、js的函数重载

③ 、认清自律的本色

——JavaScript第二天

封锁是对欲望的自笔者管理。它并不是只有地控制欲望,而是起八个调试的功能。

1、JS的string对象
    创建string对象:
        var str = “abc”;
    方法和天性:
        属性:length,表示字符串的长短。
        (1)与HTML相关的章程
            bold():使用粗体展现字符串
            fontcolor(“颜色”):使用内定颜色呈现字符串
            fontsize(size):使用钦赐字号显示字符串
            link(“U福睿斯L”):将字符串突显为超链接
            sub():设置下标
            sup():设置上标
        (2)与Java相似的点子
            concat(string):连接字符串
           
charAt(index):重回钦赐地方的字符串,假诺脚标不设有,则赶回空字符串
           
indexOf(string):再次回到字符串所在地点,当字符串不设有时,再次来到-1
            split(regex):分隔字符串,重回字符串数组
            replace(string,
string):需求传递多少个参数,第三个是原始字符串,第二个是要替换的字符串
            substr(fromindex, count):从内定地点上马,截取count的字符
            substring(fromindex, endindex):包涵头不含有尾

善于调节的欲望的人,会把欲望放到合适的事务上,让它致以积极意义,幸免被动功效;会适时压制、再适时释放出来。

2、JS的Array对象
    创设数组:
        var arr = [1, 2, 3];   
创设二个长短为3的数组,并且赋值为123。
        var arr = new Array(5);    创造3个长短为5的数组。
        var arr = new Array(1, 2, 3);   
创制四个长度为3的数组,并且赋值为123。
    属性:
        length:数组的尺寸。
    数组的措施:
        concat(array):连接数组
         
  连接只是把数组1和数组2作为贰个字符串来看待,并不是将数组2添加到数组第11中学。
 
        join():遵照1个钦点的字符串来划分数组

诸如,小周喜欢吃,吃东西便是她的欲念。如若她能及时压抑住“立马就得吃”的私欲,站起身来,进厨房好好做一顿可口的,健康又营养。或然外出寻觅好菜馆,没准儿就改成美味的吃食活地图。然而,假设他无能为力适时地压制,希望登时赢得满意,可能就会陷在垃圾食物里不只怕自拔,也许私行虚情假意。久而久之,肉肉不找她找哪个人吧?

       
push():向数组末尾添加1个或七个成分,并再次来到新的长度,也能够拉长贰个数组。
           
必要注意的是,假若push的成分是三个数组,则会把那个数组当成3个因一直对待,例如:
                原数组arr1的值为[1, 2, 3],此时就算pusharr2=[a, b,
c],则arr1的length的值为4,假若打字与印刷arr1[3],则会将arr2的值整体出口,当arr2数组中成分产生变化时,此时一旦再打字与印刷arr1,则也会发生变化,能够知晓为将arr2的引用放入了arr3中,并不是将arr2数组的全部值复制到arr第11中学。
       
pop():删除并赶回数组中的最后一个要素,要是没有要删减的值,则再次回到undefined。
        reverse():颠尾数组中的成分。

所以您看,自律并不唯有缠绵悱恻压抑一种艺术。关键在于,能够在合适的时机展开调节,能不可能用对地点。

3、JS的Date对象
    在Java中赢稳当前岁月:
        Date date = new Date();
        在Java中有二种转换方法:
            new SimpleDateFormat().format()和toLocaleString();

众多人餐风饮露地约束了,学到上午,坚持不渝地强暴痛心不已,把本人激动地非常不好,结果没见到效益。恐怕,能够从“适时调节”和“用对方向”这多个方面展开调整,说不定结果会大分歧。

    JS中哪些获得当明日子:
        var date = new Date();

4、如何才能洋洋得意地约束

    方法:
       
toLocaleString():遵照地面时间格式,把Date对象的年华更换为字符串
        getFullYear():以4位数字重临当二〇一七年度
        getMonth():获得当前月份,须要小心的是,月份的限定是0 ~ 11
        getDate():获得当前时局,范围是1 ~ 31
        getDay():重返二十日中的某一天,范围是0 ~ 6,从周五始于总括
        getHours():获取当前小时,范围0 ~ 23
        getMinutes():获取当前分钟
        get提姆e():重回从1966年三月3日于今的飞秒数

怎么调整呢?能够从底下这多少个地点试一试:

    应用场景:
        使用皮秒数处理缓存的效果:
            http://www.baidu.com?毫秒数
           
因为每一遍请求的纳秒数都差异等,所以能够确认保证每趟请求的数量都以新的。

认识自个儿。您有没有问过自个儿:为啥自个儿付诸了成都百货上千行动,却还是在原地打转?大概应该在埋头付出从前,先好好审视一下和好,首先创造起复苏的本人认知。

4、JS的Math对象
 
  Math对象并不像Date和String这样是指标的类,因而并不曾构造方法,所以不能创设对象,Math的法门都以静态方法。

您的帮助和益处是怎么?现在流行长板理论,也正是焦点竞争力。很多时候,决定你能力和岗位的,不是你的瑕疵,而是你的亮点。你不会瑜伽怎么了?因为你会写一手好文案就够了,升职的时候领导看的是的做事业绩,不是你会多少个瑜伽高难度姿势。

    属性:
        PI:π,圆周率

封锁不起效能,很多时候,是因为大家都用单薄的时刻和精力跟自身的毛病较劲。短处还没补上来呢,长处倒给丢得差不离了,捡了芝麻丢了西瓜。与其如此,还不如拿出分析成功人员的时光,来分析分析本身:

    方法:
        ceil(number):向上舍入
        floor(number):向下舍入
        round(number):四舍五入
        random():返回0 ~ 1之间的伪随机数
        max(x, y):重临x和y中的最大值
        min(x, y):再次来到x和y中的最小值

您的本性特点是怎样?小编的优势是哪些?

五 、JS的全局函数
    由于该函数不属于别的对象(类),所以能够一贯运用。

人家的怎么方法是切合本身的?是本人索要的啊?

    eval(string):能够执行JS代码,也得以展开数学运算。
    encodeU途观I():对字符进行编码
    decodeU奥迪Q3I():对字符举办解码
    encodeUHavalIComponent():对字符进行编码
    decodeU揽胜极光IComponent():对字符进行解码
        以上办法没有精神上的分别,只可是编码字符个数不一致
    isNaN():检查有个别值是不是是数字,再次来到值为true和false
    parseInt():将三个字符串转换为整数。

……

    关于编解码USportageI:
        实行URAV4L跳转时能够完整接纳encodeU奥迪Q7I进行编码。
    对字符串举办unicode编码:
        (1)escape无法编码的字符有陆二十一个:
            *+_./@_0-9a-zA-Z
        (2)encodeUPAJEROI不能够编码的字符有8一个:
            !#$&'()*+-./:;=?@_~0-9a-zA-Z
        (3)encodeU宝马7系IComponent不可能编码的字符有柒十一个:
            !'()*-._~0-9a-zA-Z

知己知彼百战不殆,跟本人的欲望打仗,你却连自个儿都不掌握,怎么能赢吗?

陆 、JS的函数重载
    面试:JS中是或不是存在重载?
        (1)JS中不存在重载。
        (2)可是足以因此任何措施来达到重载的目标。
        (3)在JS中假诺措施名相同,会调用最终七个艺术。
        (4)参数会保存在arguments数组中。

摆正心态。不盲目自贬,也不盲目崇拜。人是爱比较的浮游生物,从小父母拿我们跟别人家的小孩儿比,长大了,我们自个拿自个儿跟大牛们比。看到外人那么美貌,心里一阵慌乱:人家那么美好还那么拼命,作者可怎么做啊?

        <script type=”text/javascript”>

骨子里怕什么啊?别人很好,你也很好。只但是起步有肯定,提升有速度,只要您一步一步踏实地走,总能走到温馨人生的高处。

            function add() {

温馨是温馨最大的仇人,也是温馨最好的恋人。

                var sum = 0;

找到自身的确实引力。很多时候不能百折不回自律,是因为您做的并不是友好真的想做的。

                for(var i = 0; i < arguments.length; i++)

背十分钟英文单词就要头晕,但是一旦是做本人喜好的事,八个小时也不嫌多。都说兴趣是最好的老师,诚不小编欺。心绪学中讲,兴奋的小时觉得短暂,忧伤的小时觉得漫长。同样的,若是是始终不渝做感兴趣的事体,自律就不再是惨痛的。

                {

询问自个儿的实际想法,找到自身实在的急需,吐弃这几个偷天换日标假努力,问问自个儿,你真的想要的是哪些。

                    sum += arguments[i];

去做要好的确感兴趣的,那个才能提供接踵而至 一拥而上的引力,才能让我们长期地坚贞不屈下去。

                }

自然,人生中有为数不少大家不甘于不欣赏不过也亟须得做的事体,而找到本人的着实重力,它会带给你不休升华的力量,让您有丰盛的能量,去完结这个不欣赏的事。

                return sum;

想要把喜欢的、不希罕的事做下去,就必将得先从欣赏的作业里积累力量。

            }

找准本身的人生方向。每一种人的活着遭遇分歧,人生方向应该不一致。马云(英文名:杰克 Ma)当然成功,可是一旦人们都想当第2个杰克 Ma,大概也不是件幸福的事务。

            document.write(“<hr/>” + add(1,2));

孩提听过如此的二个传说:螃蟹和小猫看到老鹰在天上海飞机创造厂,12分艳羡。于是拜托老所鹰教它们飞翔。老鹰慷慨地倾囊相授,如何飞、怎么着才能飞的快、飞的帅。螃蟹和小猫特别认真地球科学了,花了不长非常短的年月去练习飞翔。最终,螃蟹依然横着走,小猫依然四肢跑着前行。

            document.write(“<hr/>” + add(1,2,3));

人家的倾向并不是你的动向,没有一人能够完整形复原制旁人的人生。你把外人的人生过了,你的人生哪个人来替你过吧?找准本身的人生方向,用自身的优势奔跑,速度才相比快。

            document.write(“<hr/>” + add(1,2,3,4));

调整节奏。不是非得不断都干“正事”才是约束,那样会让自身陷入争分夺秒的竞技前,累的半死,还不见得有作用。顺应自然规律,才会长久。呼吸还珍视个有吸有呼呢,做事情也要有紧张有放松,节奏有张有弛,才走的比较远。一向紧绷着,整个人都会倒霉的。

            document.write(“<hr/>” + add(1,2,3,4,5));

提升效用和品质,而不是独自拉长期。写出《多谢你,愿意做自笔者的儿女》这一爆款文的曼妙写我冯尘,在她的分享课中讲到,认真写好一篇文,比每一日更新主要。学生时期,大多都有过在教室疯狂自习却功效不高的阅历。

        </script>

自律的原形不是拼速度拼时间,而是拼功效。每日注意赶紧写而不认真想的本身,写13个小时,根本不及每一日高效写作三钟头的汤小小。所以,在祥和的力量基础上,追求功能和品质,废弃自己感动的耗费时间间,是很要紧的。

7、JS的BOM对象
    Browser Object Model,浏览器对象模型。

不盲目自律,在认清自个儿和切实、调整好温馨的大势和情绪后,你早晚能够兴奋地坚贞不屈下去。好饭不怕晚,清醒地约束,才会走得更快啊!

    有什么对象:
        navigator:可以博得浏览器的连锁新闻。
            appName:浏览器名称
            document.write(navigator.appName);   
//注意navigator要小写

        screen:获取浏览器显示器的音讯,例如宽度、中度、分辨率
            document.write(screen.width);    获取显示器宽度
            document.write(screen.height);    获取显示屏高度

        location:表示请求U本田UR-VL地址
           
href:设置或回到完整的U科雷傲L地址,须要小心的是,该href暗许已经展开encodeU奥迪Q5I编码。
               
获取请求U卡宴L地址:document.write(decodeUOdysseyI(location.href));
               
设置URL地址:location.href=”http://www.baidu.com“;

        history:请求UPRADOL的历史记录
            length:重返浏览器历史列表中的USportageL数量
            back():加载history列表中的前二个U奥德赛L
            forward():加载history列表中的下贰个UOdysseyL
            go():加载history列表中的某些具体页面 
            创造三个页面:
                (1)创设第三个页面a.html,写1个链接到b.html
                (2)创建b.html,写三个超链接c.html
                (3)创建c.html
                <h1>BBBBBB</h1>

                <input type=”button” value=”后退”
onclick=”back1();”>

                <input type=”button” value=”前进”
onclick=”forward1();”>

                <a href=”c.html”>跳转到c</a>

 

                <script type=”text/javascript”>

                    //到上二个页面

                    function back1()

                    {

                        history.back();    //history.go(-1)
 -1表示到上贰个页面 

                    }

                    //到下一个页面

                    function forward1()

                    {

                        history.forward();    //history.go(1)
 1表示到下3个页面

                    }

                </script>

        window:
           
window对象是JS层级中的顶层对象。(全部的BOM对象都在window中展开操作)
            window对象表示三个浏览器窗口或一个框架。
         
  window对象会在<body>或<frameset>出现时自动成立。

            属性:
                opener:重临创制此窗口的窗口的引用。

            方法:
                alert():在页面弹出三个唤起窗口

               
confirm():展现带有一段消息以及确认按钮和撤回按钮的对话框
                   
在弹出的对话框中选中分明,再次回到true,选中撤消,重临false。

                prompt(text, defaultText):展现可提示用户输入的对话框
                    text:对话框中彰显的内容。
                    default:对话框中输入框中暗中同意呈现的文本。

                open(url, name, features,
replace):打开三个新的浏览器窗口或探寻八个已命名的窗口,一般选择八个参数即可
                    url:打开的新窗口的U兰德酷路泽L地址
                    name:空字符串即可
                    features:窗口特征,比如窗口宽度和惊人
                    成立3个按钮,当点击按钮时,打开八个新窗口:
                        <input type=”button” value=”打开”
onclick=”open1();” name=””>

                        <script type=”text/javascript”>

                            function open1()

                            {

                                window.open(“a.html”,””,”width=200,height=200″);

                            }

                        </script>

                close():关闭当前窗口(浏览器包容性较差)

                setInterval(code,
millisec):依照钦命的周期(以皮秒计)来调用函数或总括表明式 

                    参数:
                        code:要调用的函数或要实践的代码
                       
millisec:周期性执行只怕调用code之间的时刻间隔,以纳秒计。1秒 =
一千飞秒
                    setInterval(“alert(123)”, 3000);   
每三秒弹出一个对话框。
                    能够利用那么些点子来制作系统时间、定时器等。

                set提姆eout(code, millisec):在钦点的阿秒数之后来调用
                   
与setInterval的分裂是,setTimeout只会履行三遍,而setInterval会重复执行。

                clearInterval():清除setInterval()设置的定时器
                   
clearInterval()方法的参数必须是由setInterval()重回的ID值。
                clearTimeout():清除setTimeout()设置的定时器
                   
clearTimeout()方法的参数必须是由setTimeout重返的ID值。

                    <input type=”button” value=”清除setInterval”
onclick=”clearI()” name=””>

                    <input type=”button” value=”清除setTimeout”
onclick=”clearT()” name=””>

                    <script type=”text/javascript”>

                        var Iid = window.setInterval(“alert(123);”,
2000);

                        var Tid = window.setTimeout(“alert(555);”,
5000);

                        function clearI()

                        {

                            clearInterval(Iid);

                        }

                        function clearT()

                        {

                            clearTimeout(Tid);

                        }

                    </script>

8、JS的DOM对象
    Document Object Model,文书档案对象模型。
        文档:超文本文书档案(超文本标记文书档案),HTML、XML。
        对象:提供了品质和措施。
        模型:使用质量和方法来操作超文本标记型文书档案。
   
可以选用JS中DOM里面提供的对象,使用那么些目的的习性和艺术,对标记型文书档案进行操作。

    想要对标记型文书档案举行操作:
        首先必要对标记型文书档案中的全数内容都封装成对象。
            须要把HTML中的标签、属性、文本内容都封装成对象。
        然后须要分析标记型文书档案。

    怎么着使用DOM解析HTML:
       
首先会根据HTML的层级结构在内部存款和储蓄器中分红二个树形结构,然后再经过分歧的靶子来操作HMTL。

    对象:
        Document对象:
            整个HTML文档。
        Element对象:
            标签对象。
        Element -> 属性对象。
        Element -> 文本对象。
        Node节点对象:
            是Element对象的父对象。
           
如若在Element对象中找不到想要的章程,能够去Node对象中追寻。

    DOM的多少个级别:
        (1)将HTML文书档案封装成对象。
        (2)在以上基础上添加新的效应,例如:对事件和CSS样式的援助。
        (3)支持XML的有个别新本性。
    DHTML:
        动态的HTML,它不是一门语言,是多项技术的综合体的简称。
        包括HTML、CSS、DOM、JavaScript
        那三种语言的职务:
            HTML:负责提供标签,封装数据,那样有利于操作数据。
            CSS:负责提供体制,对标签中的数据开始展览体制定义。
           
DOM:负责将标签及其内容分析,封装成对象,对象中负有属性和作为。
           
JavaScript负责提供程序设计语言,对页面中的对象举办逻辑操作。

9、Document的对象
    各个载入浏览器的HTML文书档案都会变成Document对象。
    常用属性:
        forms[]:再次回到文书档案中持有form对象的引用。
        body:提供对<body>元素的平素访问。
    常用方法:
        getElementById():重回对具有钦赐id的第二个对象的引用。
        getElementsByName():重返带有钦点名称的对象集合(数组)。
            获取第3个目的:getElementByName(“name”)[0];
        getElementsByTagName():重回带有内定表签名的目的集合(数组)。
       
write():向文书档案写HTML表明式也许JavaScript代码,能够出口变量(值)。

⑩ 、弹窗案例
    创建3个页面:
        有八个输入项和2个按钮。
        按钮上添加三个点击事件,弹出三个新窗口:open()。
    成立弹出页面:
        使用表格,表格的每一行都有1个按钮,还有编号和人名。
       
按钮上有1个轩然大波,将近期的号码和姓名赋值到第一个页面包车型大巴文本框中。
    <html>

        <head>

            <title></title>

        </head>

        <body>

 

            编号:<input type=”text” id=”numid”
name=””><br/>

            姓名:<input type=”text” id=”nameid”
name=””><br/>

            <input type=”button” value=”选择” onclick=”open1()”
name=””>

 

            <script type=”text/javascript”>

                //完毕弹出窗口的办法

                function open1() {

                    window.open(“select.html”, “”, “width=300,
height=300”);

                }

            </script>

 

        </body>

    </html>

    <!DOCTYPE html>

    <html>

        <head>

            <title></title>

        </head>

    <body>

 

    <table border=”1px” bordercolor=”red”>

        <tr>

            <td>操作</td>

            <td>编号</td>

            <td>姓名</td>

        </tr>

        <tr>

            <td>

                <input type=”button” id=”id1″ value=”选择” name=””
onclick=”s1(‘100’, ‘张三’)”>

            </td>

            <td>100</td>

            <td>张三</td>

        </tr>

        <tr> 

            <td>

                <input type=”button” id=”id2″ value=”选择” name=””
onclick=”s1(‘200’, ‘李四’)”>

            </td>

            <td>200</td>

            <td>李四</td>

        </tr>

        <tr>

            <td>

                <input type=”button” id=”id3″ value=”选择” name=””
onclick=”s1(‘300’, ‘王五’)”>

            </td>

            <td>300</td>

            <td>王五</td>

        </tr>

    </table>

    <script type=”text/javascript”>

 

        function s1(num1, name1)

        {

            var win1 = window.opener;//获得父窗体

            win1.document.getElementById(“numid”).value = num1;

            win1.document.getElementById(“nameid”).value = name1;

            window.close();

        }

        </script>

        </body>

    </html>

    安全题材:
       
由于明天做客的是地方文件,谷歌浏览器的安全级别很高,不允许访问当半夏件,所以不或许履行以上代码,要是在服务器中就不存在以上难点了。

——JavaScript第三天

Node接口的风味和方法:
    String nodeName:
        重临节点的名字。
    String nodeValue:
        再次来到节点的值。
    Number nodeType:
        再次回到节点的品类常量值之一。
    Document ownerDocument:
        再次来到只想以此节点所属的文书档案。
    Node firstChild:
        重返指向在childNodes列表中的第③个节点。
    Node lastChild:
        重返指向在childNodes列表中的最终一个节点。
    NodeList childNodes:
        重临全部子节点的列表。
    Node parentNode:
        再次来到3个给定节点的父节点。
    Node previousSibling:
       
指向前三个男士节点,要是这么些节点正是第三个兄弟节点,那么该值为null。
    Node nextSibling:
       
指向后贰个兄弟节点,假如这几个节点正是最后三个弟兄节点,那么该值为null。
    Boolean hasChildNodes():
        当childNode包涵三个或四个节点时,重返true。
    NameNodeMap attributes:
        包涵了象征二个要素的性状的Attr对象,仅用于Element节点。
    Node appendChild(node):
        将node节点添加到childNodes的尾声。
    Node removeChild(node):
        从childNodes中删除node节点。
    Node replaceChild(newNode, oldNode):
        将childNodes中的oldNode替换成newNode。
    Node insertBefore(newNode, refNode):
        在childNodes中的refNode此前插入newNode。

=====================================================================
一 、在终极添加节点

<!DOCTYPE html>

<html>

<head>

    <title>在最后添加节点</title>

</head>

<body>

    <ul id=”ulid” >

        <li>11</li>

        <li>22</li>

        <li>33</li>

        <li>44</li>

    </ul>

</body>

</html>

    分析:
        (1)创建<li>标签
                document.createElement(“li”);
        (2)创制文本
                document.createTextNode(“文本内容”);
        (3)将文件添加到<li>标签中
                li.appendChild(node);
        (4)将<li>标签添加到<ul>标签中
                ul.appendChild(li);

    用到的法子:
        createElemnt():为钦命标签创制叁个元素的实例。
        createTextNode():从钦点值中开创文本字符串。
        appendChild(node):将钦赐节点添加到节点之后。

<!DOCTYPE html>

<html>

<head>

    <title>在结尾添加节点</title>

</head>

<body>

    <input type=”button” value=”添加节点” onclick=”add1()”
name=””>

    <hr />

    <ul id=”ulid” style=”float: left;”>

        <li>11</li>

        <li>22</li>

        <li>33</li>

        <li>44</li>

    </ul>

    <script type=”text/javascript”>

        function add1()

        {

            //获取ul节点

            var ul1 = document.getElementById(“ulid”);

            //成立贰个li节点

            var li1 = document.createElement(“li”);

            //创设文本

            var text1 = document.createTextNode(“哈哈”);

            //将文本添加到li节点中

            li1.appendChild(text1);

            //将li节点添加到ul节点中

            ul1.appendChild(li1);

        }

    </script>

</body>

</html>

===============================================================================
2、Element对象
        操作Element对象的性质:
            获取属性:getAttrubute(name)
                <input type=”text” id=”inputid” value=”aaaa”
name=””>

                <script type=”text/javascript”>

                    //获取input标签

                    var input1 = document.getElementById(“inputid”);

                    // alert(input1.value);

                    alert(input1.getAttribute(“id”));   
//能够博得其它性质

                </script>

           
getAttribute()方法的功利是足以拿走其它性质,而value只可以获取“value”值。
 

            设置属性:setAttribute(name, value)
                <input type=”button” id=”inputid” onclick=”click()”
value=”aaaa” />

                <input type=”button” id=”inputid2″ onclick=”click2()”
value=”aaaa” />

                <input type=”text” id=”sp” value=”bbb” />

                <script type=”text/javascript”>

                    alert(document.getElementById(“sp”).value);

                    function click()

                    {

                        document.getElementById(“sp”).setAttribute(“type”,”button”);

                    }

                    function click2()

                    {

                        var text = document.getElementById(“sp”).value;

                        alert(text);

                    }

                </script>

            删除属性:removeAttribute(nmae)方法
                removeAttribute()方法不能去除value值。

===============================================================================
三 、获取某一节点下的拥有节点:childNodes
    获取ul下的具有li。
    <ul id=”ulid1″>

        <li>aa</li>

        <li>bb</li>

        <li>cc</li>

    </ul>

    <script type=”text/javascript”>

        //获取ul下的富有子成分

        var uls = document.getElementById(“ulid1”);

        var list = uls.childNodes; 

        alert(list.length);

    </script>

   
须要留意的是,在IE浏览器中会alert(3),而在火狐、谷歌(Google)浏览器中会打印alert(7),因为解析方法各异,火狐会把换行和空格也剖析为成分。
    所以childNodes属性的包容性很差。

    在Element对象中查找Element对象:
        在Element对象的界定内,能够用来探寻别的节点的绝无仅有有效办法就是getElementsByTagName()方法,而该措施再次来到的是1个聚集。
        var list = uls.getElementsByTagName(“li”);

        需求留意的是:getElementsByTagName是Document的点子。

④ 、Node常用属性:

    Node 对象是百分百 DOM
的机要数据类型。节点指标表示文书档案树中的1个单独的节点。节点能够是因素节点、属性节点、文本节点。

    Element 对象表示 XML 文书档案中的元素。成分可含蓄属性、别的因素或文本。

    XML树结构中唯有NODE,Element的品质,文本等都以节点。

   
使用DOM解析HTML的时候,会将HTML中的标签、属性和文书都封装成对象,对应以下八个属性:
 
    nodeName
        假若节点是因素节点,nodeName重返这一个元素的名目。
        假如是性质节点,nodeName再次来到这些性格的称呼。
        假设是文本节点,nodeName重回1个剧情为#text的字符串。
    nodeType
        Node.ELEMENT_NODE    成分节点
        Node.ATTRIBUTE_NODE    属性节点
        Node.TEXT_NODE    文本节点
    nodeValue
        如若给定节点是2性子质节点,返回值是其一天性的值。
        假诺给定节点是二个文书节点,再次回到值是以此文件节点的始末。
        假诺给定节点是1个成分节点,重返值是null。

    <span id=”spanid”>哈哈</span>

    <br />

    <script type=”text/javascript”>

        //获取标签对象

        var span1 = document.getElementById(“spanid”);

        document.write(span1.nodeType + “<br />”);    //1

        document.write(span1.nodeName + “<br />”);    //SPAN

        document.write(span1.nodeValue + “<br />”);    //null

 

        //获取属性

        var id1 = span1.getAttributeNode(“id”);    //获取三个节点的属性

        document.write(id1.nodeType + “<br />”);    //2

        document.write(id1.nodeName + “<br />”);    //id

        document.write(id1.nodeValue + “<br />”)    //spanid

 

        //获取文本

        var text1 = span1.firstChild;    //获取第四个节点

        document.write(text1.nodeType + “<br />”);    //3

        document.write(text1.nodeName + “<br />”);    //#text

        document.write(text1.nodeValue + “<br />”);    //哈哈

    </script>

    总结:
        标签节点对应的值:
            nodeType:1
            nodeName:大写标签名,例如:SPAN
            nodeValue:null
        属性节点对应的值:
            nodeType:2
            nodeName:属性名称
            nodeValue:属性的值
        文本节点对应的值:
            nodeType:3
            nodeName:#text

            nodeValue:文本内容

伍 、父节点、子节点和兄弟节点
    父节点:parentNode
       
parentNode属性再次来到的节点永远是2个要素节点,因为唯有成分节点才有大概包涵子节点。
        document节点没有父节点。
    子节点:
        childNodes:获取钦点节点的全体子节点集合。
        firstChild:获取钦命节点的率先个头节点。
        lastChild:获取钦赐节点的末段一个子节点。
    兄弟节点:
        nextsibling:重临八个给定节点的下四个兄弟节点。
        previousSibling:重返一个给定节点的上四个男子节点。 

    该操作只是本着标签实行操作,不能操作属性。

6、操作DOM树
    方法:
        appendChild方法:
            将子节点添加到节点末尾。
            类似于剪切粘贴的效率。

<!DOCTYPE html>

<html>

<head>

    <title></title>

    <style type=”text/css”>

        #div1 {

            width:200px;

            height: 150px;

            border: 1px solid red;

        }

 

        #div2 {

            width: 250px;

            height: 150px;

            border: 3px dashed green;

        }

    </style>

 

</head>

<body>

    <div id=”div1″>

        <ul id=”ulid1″>

            <li>AAA</li>

            <li>BBB</li>

            <li>CCC</li>

        </ul>

    </div>

 

    <div id=”div2″> </div>

 

    <input type=”button” value=”ADD” onclick=”add11()” name=””>

    <script type=”text/javascript”>

        function add11()

        {

            //得到div2

            var div2 = document.getElementById(“div2”);

            //获取ul

            var ul1 = document.getElementById(“ulid1”);

            //参预成分

            div2.appendChild(ul1);

        }

    </script>

</body>

</html>


        insertBefore(newNode,
oldNode)方法:在有些节点从前插入多少个新的节点。
            newNode:要插入的节点。
            oldNode:在哪个人以前插入,只可以通过父节点来添加。
            (1)成立标签
            (2)创立文本
            (3)将文件添加到标签中

<!DOCTYPE html>

<html>

<head>

    <title></title>

</head>

<body>

 

    <ul id=”ul21″>

        <li id=”li11″>西施</li>

        <li id=”li12″>王昭君</li>

        <li id=”li13″>貂蝉</li>

        <li id=”li14″>杨玉环</li>

    </ul>

 

    <input type=”button” value=”insert” onclick=”insert1()”
name=””>

 

    <script type=”text/javascript”>

        //在任红昌从前插入两个唐寅

        function insert1()

        {

            /*

                ① 、首先得到到任红昌节点 id = li13

                2、创建li

                叁 、创造文本 唐寅

                四 、将文件添加到li中

                5、获取ul

                6、将li添加到ul中

            */

            //一 、获取貂蝉节点

            var li13 = document.getElementById(“li13”);

            //2、创建li节点

            var li15 = document.createElement(“li”);

            //叁 、创制文本

            var text = document.createTextNode(“唐伯虎”);

            //四 、将文件添加到li中

            li15.appendChild(text);

            //5、获取ul标签

            var ul21 = document.getElementById(“ul21”);

            //六 、只好通过父节点来添加节点

            ul21.insertBefore(li15,li13);

        }

    </script>

</body>

</html>


        removeChild(node)方法:删除节点。 

            本身不可能去除本人,必须通过父节点来删除该节点。

<!DOCTYPE html>

<html>

<head>

    <title></title>

</head>

<body>

    <ul id=”ul31″>

        <li id=”li21″>西施</li>

        <li id=”li22″>王昭君</li>

        <li id=”li23″>貂蝉</li>

        <li id=”li24″>杨玉环</li>

    </ul>

    <input type=”button” value=”remove” onclick=”remove1()”
name=””>

    <script type=”text/javascript”>

        //删除王昭君

        function remove1()

        {

            /*

                壹 、获取到杨妃嫔标签

                ② 、获取父节点ul

                ③ 、执行删除(通过父节点来删除)

            */

 

            //1、获取li标签

            var li24 = document.getElementById(“li24”);

            //二 、获取父节点 (1)通过id获取 (2)通过parentNode属性获取

            var ul31 = document.getElementById(“ul31”);

            //通过父节点删除

            ul31.removeChild(li24);

        }

    </script>

</body>

</html>


        replaceChild(newNode, oldNode)方法:替换节点。
            newNode:新的节点。
            oldNode:旧的节点。
            无法协调替换本人,须要动用父节点来成功替换操作。

<!DOCTYPE html>

<html>

<head>

    <title></title>

</head>

<body>

    <ul id=”ul41″>

        <li id=”li31″>西施</li>

        <li id=”li32″>王昭君</li>

        <li id=”li33″>貂蝉</li>

        <li id=”li34″>杨玉环</li>

    </ul>

    <input type=”button” value=”replace” onclick=”replace1()”
name=””>

 

    <script type=”text/javascript”>

        //将杨妃子替换来桃花庵主

        function replace1()

        {

            /*

                1、获取到li34

                二 、创设要替换的li标签

                ③ 、成立文本

                肆 、将文件添加到li标签中

                5、获取ul父节点

                陆 、使用replaceNode方法替换节点

            */

 

            var li34 = document.getElementById(“li34”);

            var li = document.createElement(“li”);

            var text = document.createTextNode(“唐伯虎”);

            li.appendChild(text);

            var ul = document.getElementById(“ul41”);

            ul.replaceChild(li,li34);

        }

    </script>

</body>

</html>


        cloneNode(boolean):复制节点。
            boolean:是或不是复制子节点。

<!DOCTYPE html>

<html>

<head>

    <title></title>

    <style type=”text/css”>

        #di2{

            width: 200px;

            height: 200px;

            border: 3px dashed blue;

            float: left;

        }

        #di1{

            width: 200px;

            height: 200px;

            border: 1px solid red;

        }

    </style>

</head>

<body>

    <div id=”di1″>

        <ul id=”ul41″ style=”clear: both;”>

            <li id=”li31″>西施</li>

            <li id=”li32″>王昭君</li>

            <li id=”li33″>貂蝉</li>

            <li id=”li34″>杨玉环</li>

        </ul>

    </div>

    <div id=”di2″>

 

    </div>

    <input type=”button” value=”clone” onclick=”clone1()” name=””>

 

    <script type=”text/javascript”>

        function clone1()

        {

            //将ul列表复制到其余叁个div中

            /*

                1、获取到ul

                贰 、执行复制方法 cloneNode方法,参数为true

                ③ 、把复制之后的内容放到div中

                    获取div,然后使用appendChild(剪切粘贴)

            */

            //1、获取ul标签

            var ul = document.getElementById(“ul41”);

            //② 、获取要复制的div

            var div2 = document.getElementById(“di2”);

            //3、赋值ul

            var ul2 = ul.cloneNode(true);

            div2.appendChild(ul2);

        }

    </script>

</body>

</body>

</html>


    操作DOM总结:
        获取节点:
            getElementById():通过节点的ID属性,查找对应节点。
            getElementsByName():通过节点的name属性,查找对应节点。
            getElementsByTagName():通过节点名称,查找对应节点。
        插入节点:必须透过父节点插入
            appendChild():在结尾添加,也正是剪切粘贴。
            insertBefore():在有些节点在此以前插入。
        替换节点:
            replaceChild():必须经过父节点替换
        删除节点:

            removeChild():必须通过父节点删除。 

7、innerHTML属性

    差不离拥有浏览器都补助该属性,但不是DOM标准的组成都部队分。

    innerHTML属性能够用来读 / 写某给定成分里的HTML内容:
        获取文本的剧情。
        向标签中装置情节(可以是HTML代码)。

    innerHTML属性多与div或span标签协作使用。

<html>

<head>

    <title></title>

    <style type=”text/css”>

        #did{

            width: 200px;

            height: 200px;

            border: 1px solid red;

        }

    </style>

</head>

<body>

    <span id=”sid”>哈</span>

    <div id=”did”>

 

    </div>

    <script type=”text/javascript”>

        //获取span标签

        var span1 = document.getElementById(“sid”);

        alert(span1.innerHTML);

 

        //向div中安装情节<h1>AAAA</h1>

        //获取div

        var div = document.getElementById(“did”);

        div.innerHTML = “<h1>AAAA</h1>”;

    </script>

</body>

</html>
 

===============================================================================
八 、案例:动态展现时间
    获得当前光阴:
        var date = new Date();
        var d = date.toLocaleString();
    设置定时期码:
        setInterval();
    将时刻彰显到页面上:
        每一秒向页面中写入3回时间,使用innerHTML属性。

<!DOCTYPE html>

<html>

<head>

    <title>动态展现时间</title>

</head>

<body>

    <p id=”p1″></p>

    <script type=”text/javascript”>

        // function fun(){

            var date = new Date();

            var p = document.getElementById(“p1”);

            var code = “document.getElementById(‘p1’).innerHTML = new
Date().toLocaleString()”;

            window.setInterval(code, 1000);

        // }

        // window.setInterval(fun(), 1000);

    </script>

</body>

</html>

===============================================================================
⑨ 、案例:全选演练
    使用复选框中的checked属性判断是或不是选中:
        checked == true:选中
        checked == false:未选中
    创设1个页面:
        复选框和按钮:
            多个复选框。
            全选、清除、反选按钮。

<!DOCTYPE html>

<html>

<head>

    <title></title>

</head>

<body>

    <input type=”checkbox” id=”c” onclick=”selAllNo()” name=””>
全选/清除 <br/>

    <input type=”checkbox” id=”c1″ name=”sel”> 篮球 <br/>

    <input type=”checkbox” id=”c2″ name=”sel”> 足球 <br/>

    <input type=”checkbox” id=”c3″ name=”sel”> 排球 <br/>

    <input type=”checkbox” id=”c4″ name=”sel”> 羽毛球 <br/>

 

    <input type=”button” id=”b1″ value=”全选” onclick=”selAll()”
name=””> 

    <input type=”button” id=”b1″ value=”清除” onclick=”selNo()”
name=””> 

    <input type=”button” id=”b1″ value=”反选” onclick=”selOther()”
name=””> 

 

    <script type=”text/javascript”>

        //全选

        function selAll(){

        /*

            壹 、获取要操作的复选框

                使用document.getElementsByName()方法获得

            贰 、重返的是数组

                checked属性可以断定复选框是不是被选中

                checked = true或者false。

                遍历数组,将checked全体装置为true。

        */

            //获取全体复选框

            var arr = document.getElementsByName(“sel”);

            //遍历数组,得到每多少个复选框

            for (var i = 0; i < arr.length; i++)

            {

                //获得每四个复选框

                var sel = arr[i];

                //设为当选

                sel.checked = true;

            }

            fun();

        }

        //全不选

        function selNo(){

        /*

            一 、获取要操作的复选框

            ② 、重返的是数组,遍历数组

            ③ 、设置复选框属性 checked = false

        */

            //得到要操作的复选框

            var arr = document.getElementsByName(“sel”);

            //遍历数组,获得每三个复选框

            for (var i = 0; i < arr.length; i++)

            {

                var sel = arr[i];

                sel.checked = false;

            }

            fun();

        }

        //反选

        function selOther(){

        /*

            一 、获取要操作的复选框

            二 、再次回到的是数组,遍历数组

            ③ 、得到每1个复选框

            ④ 、判断复选框状态

                if(sel.checked == true)

            ⑤ 、设为相反值

        */

            //获得全方位复选框

            var arr = document.getElementsByName(“sel”);

            //遍历数组

            for (var i = 0; i < arr.length; i++)

            {

                var sel = arr[i];

                //判断当前复选框状态

                if(sel.checked == true)

                {

                    sel.checked = false;

                }

                else

                {

                    sel.checked = true;

                }

            }

            fun();

        }

        //完毕全选和全不选

        function selAllNo(){

        /*

            ① 、得到全选复选框

                document.getElementById()

            二 、判断复选框是不是选中

                if条件

            三 、要是是选中,则选中全体复选框

            ④ 、倘若未选中,则全不选具有复选框

        */

            //获得复选框

            var cAll = document.getElementById(“c”);

            //判断复选框是或不是选中

            if(cAll.checked)

            {

                selAll();

            }

            else

            {

                selNo();

            }

            fun();

        }

        //判断即便多少个挑选都入选,则全选框也当选

        function fun()

        {

            var arr = document.getElementsByName(“sel”);

            for(var i = 0; i < arr.length; i++)

            {

                if(!arr[i].checked)

                {

                    document.getElementById(“c”).checked = false;

                    return;

                }

                else
                { 

                    document.getElementById(“c”).checked = true;

                }

            }
        } 

    </script>

</body>

</html>
 

===============================================================================

十 、案例:下拉列表左右精选
    下拉摘取框:
        <select>
            <option> 111 </option>
            <option> 222 </option>
        </select>

    创设3个页面:
        五个下拉摘取框:设置multiple属性
        五个按钮,添加点击事件。

    选中添加到左边:
        (1)获取左侧select中的option
                getElementsByTagName();再次来到的是数组。
                遍历数组,获得每一个option。
        (2)判断option是不是被选中。
                selected = true;被选中
                selected = false;未选中
        (3)借使当选,把被入选的option添加到右手去。
        (4)得到左侧的select
        (5)添加选中的option
           
appendChild()方法,必要注意的是,该办法类似于剪切,所以数首席执行官度会直接变化。

<!DOCTYPE html>

<html>

<head>

    <title>下拉列表左右增选</title>

    <style type=”text/css”>

        #sel1 {

            width: 200px;

            height: 200px;

            float: left;

        }

        #sel2 {

            width: 200px;

            height: 200px;

        }

        #d1 {

            width: 100px;

            float: left;

            margin-left: 40px;

            margin-right: 40px;

            margin-top: 20px;

        }

        input {

            margin: 10px;

        }

</style>

</head>

<body>

    <select id=”sel1″ multiple=”multiple”>

        <option>111</option>

        <option>222</option>

        <option>333</option>

        <option>444</option>

        <option>555</option>

        <option>666</option>

        <option>777</option>

        <option>888</option>

    </select>

    <div id=”d1″>

        <input type=”button” value=”选中添加到左边” name=””
onclick=”selToRight()”>

        <input type=”button” value=”全体加上到左侧” name=””
onclick=”allToRight()”>

        <input type=”button” value=”选中添加到左边” name=””
 onclick=”selToLeft()”>

        <input type=”button” value=”整体加上到左手” name=””
 onclick=”allToLeft()”>

    </div>

    <select id=”sel2″ multiple=”multiple”>

    </select>

 

    <script type=”text/javascript”>

        var left = document.getElementById(“sel1”);

        var right = document.getElementById(“sel2”);

        //获取左边option集合

        function getLeft(){

            return
document.getElementById(“sel1”).getElementsByTagName(“option”);

        }

        //获取右侧option集合

        function getRight(){

            return
document.getElementById(“sel2”).getElementsByTagName(“option”);

        }

        //将节点添加到右手option集合

        function toRight(node1){

            right.appendChild(node1);

        }

        //将节点添加到左手option集合

        function toLeft(node1){

            left.appendChild(node1);

        }

        //达成选中添加到右手

        function selToRight(){

        /*

            1、获取select1里面的option

                getElementsByTagName()

            ② 、判断是或不是被入选

                属性selected为true表示被入选

                借使是false则意味未选中。

            ③ 、借使被入选,则将被入选的节点添加到右手

            4、得到select2

            五 、添加选拔的一对

                appendChild(node)

        */

            //获取左侧option集合

            var arr = getLeft();

            for (var i = 0; i < arr.length; i++){

                if(arr[i].selected)

                {

                    toRight(arr[i]);

                    i–;

                }

            }

        }

        //全体加上到右手

        function allToRight(){

        /*

            ① 、获取右边select中的option对象

            ② 、再次回到数组,遍历数组

            ③ 、获得每1个option对象

            四 、获得左边的select

            5、添加option

                appendChild()

        */

            var arr = getLeft();

            for (var i = 0; i <= arr.length; )

            {

                toRight(arr[0]);

            }

        }

        //选中添加到左侧

        function selToLeft(){

            var arr = getRight();

            for (var i = 0; i < arr.length; i++)

            {

                if(arr[i].selected)

                {

                    toLeft(arr[i]);

                    i–;

                }

            }

        }

        //全部加上到左手

        function allToLeft(){

            var arr = getRight();

            for (var i = 0; i <= arr.length;)

            {

                toLeft(arr[0]);

            }

        }

    </script>

</body>

</html>

===============================================================================
1一 、案例:省市联合浮动
    创造1个页面,有五个下拉框。
    在第④个下拉框中加上:onchange()事件
       
onchange”change(this.value)”:this.value表示近年来option的value值。

    壹 、首先创立二个二维数组来保存数据。
   
贰 、二维数组中的每一种成分是国家名称,国家名称前面包车型大巴要素是所属国家的都市。

<!DOCTYPE html>

<html>

<head>

    <title>省市联合浮动</title>

</head>

<body>

 

    <select id=”country” onchange=”change(this.value)”>

        <option value=”0″>– 请选择 –</option>

        <option value=”中国”>中国</option>

        <option value=”美国”>美国</option>

        <option value=”德国”>德国</option>

        <option value=”日本”>日本</option>

    </select>

 

    <select id=”province” onchange=”show(this.value)”>

        <option value=”0″>– 请选择 –</option>

        <option value=”中国”>中国</option>

        <option value=”美国”>美国</option>

        <option value=”德国”>德国</option>

        <option value=”日本”>日本</option>

    </select>

 

    <input type=”button” value=”bt” onclick=”clear()” name=””>

    <script type=”text/javascript”>

        //成立数组来存款和储蓄城市

        var country = new Array(4);

        country[0] = [“中国”, “江苏”, “北京”, “广州”, “上海”];

        country[1] = [“美国”, “华盛顿”, “芝加哥”, “底特律”];

        country[2] = [“德意志”, “柏林(Berlin)”, “胡志明市”, “孟买”];

        country[3] = [“日本”, “东京”, “北海道”, “大阪”, “神户”];

        country[4] = [0, “–请选择–“];

 

        var province = document.getElementById(“province”);

 

        function change(value)

        {

            /*

                ① 、遍历二维数组

                ② 、拿到的因素也是多少个数组

                ③ 、获得数组中的第①个值和传递的值进行比较

                四 、假设多个值相同,就收获第三个值前面包车型大巴因素

                ⑤ 、添加到第一个select中

                    得到province节点

                陆 、使用appendChild方法开始展览添加

                    创建option

                    成立文本

                    设置value

                    举行添加

            */

            //壹 、遍历二维数组

            for (var i = 0; i < country.length; i++)

            {

                //得到二维数组中的各类数组

                var arr = country[i];

                //获得遍历后数组中的第5个值

                var city = arr[0];

                //判断传递的值和参数是还是不是相同

                if (city == value)

                {

                    //删除原option

                    clear();

                    //获得第①个值前面包车型客车要素

                    //遍历arr数组

                    for(var j = 1; j < arr.length; j++)

                    {

                        //获得城市的称谓

                        var val = arr[j];

                        //添加到province中

                        var option = document.createElement(“option”);

                        var text = document.createTextNode(val);

                        option.appendChild(text);

                        province.appendChild(option);

                    }

                }

            }

        }

        /*

            由于每一遍都要向province中添加option,所以要求先清空以前的option值

        */

        function clear()

        {

            var option = province.getElementsByTagName(“option”);

            for(var i = 0; i < option.length; )

            {

                province.removeChild(option[i]);

            }

        }

    </script>

</body>

</html>

===============================================================================
1二 、案例:动态变化表格
    成立3个页面:多少个输入框和一个按钮。

    /*
        一 、获得输入的行和列的值
        贰 、生成表格
            外循环 — 行
            内循环 — 列
        ③ 、展现到页面
            把表格的代码设置到div中
            使用innerHTML属性
    */

<!DOCTYPE html>

<html>

<head>

    <title></title>

    <style type=”text/css”>

        table {

            border: 1px solid red;

        }

        td {

            border: 1px solid blue;

            width: 20px;

            height: 20px;

        }

    </style>

</head>

<body id=”b”>

    行:<input type=”text” size=”10″ id=”rows1″ name=”rows2″ />

    列:<input type=”text” size=”10″ id=”cols1″ name=”cols2″>

    <input type=”button” value=”生成” onclick=”create()” name=””>

    <script type=”text/javascript”>

        function create()

        {

            var rows = document.getElementById(“rows1”).value;

 

            var cols = document.getElementById(“cols1”).value;

 

            var s = “<table>”

 

            for (var r = 1; r <= rows; r++)

            {

                s += “<tr>”

                for (var c = 1; c <= cols; c++)

                {

                    s += “<td></td>”;

                }

                s += “</tr>”;

            }

            s += “</table>”

            document.getElementById(“b”).innerHTML = s;

        }

    </script>

</body>

</html>

===============================================================================

13、总结
    (1)在最终添加节点:
            *   创制标签createElement方法
            *   成立文本createTextNode方法
            *   把公文添加到标签下边appendChild方法
    (2)成分对象
            获取标签的子标签:document.getElementsByTagName()
    (3)Node对象
            属性:nodeType、nodeName、nodeValue
    (4)操作DOM树
            父节点:parentNode(重点记住)
            appendChild()
                添加到末尾
                剪切粘贴的功力
            insertBefore(newNode, oldNode)
                通过父节点添加
            removeChild(node)
                通过父节点删除
            replaceChild(newNode, oldNode)
                通过父节点替换
    (5)innerHTML属性(*****)
            获取文本内容
            向标签设置情节(能够设置HTML代码)
    (6)动态展现时间
            定时器:setInterval()
            在钦赐时间内再也执行JS代码
    (7)全选练习
            属性:checked
            checked == true表示复选框被入选,checked ==
false代表复选框未选中。
    (8)下拉列表左右挑选
            属性:multiple
                让下拉列表中的内容全方位来得。
            selected == true:option被选中。
            selected == false:option未选中。
    (9)省市联动
            二维数组:数组中嵌套数组
            事件:onchange()
            参数:this.value,当前option的value值。
    (10)动态变化表格
            属性:innerHTML
            使用变量保存html代码
            tab += “</table>”;

——JavaScript第四天

① 、表单提交格局
    (1)使用submit提交
            <form>
                ……
                <input type=”submit” />
            </form>
    (2)使用button提交
            function form1()

            {

                //获取form

                var form1 = document.getElementById(“form1”);

                //设置action

                form1.action = “html01.html”;

                //提交form表单

                form1.submit();

            }
    (3)使用超链接提交
            <a
href=”html01.html?username=aa张三”>使用超链接提交</a> 

② 、常用方法
    onclick():鼠标点击事件
    onchange():改变事件
    onfocus():获得宗旨
    onblur():失去主题