javaScript

[TOC]

课程内容回顾

  1. 什么是JavaScript,有几个部分组成
    脚本语言,浏览器,ECMAScript BOM DOM

  2. JavaScript数据类型和语法
    Number,string,Boolean,undefined ,null

  3. JavaScript开发步骤
    绑定事件,实现函数,获取标签操作权

  4. JavaScript实现表单校验
    onsubmit

  5. JavaScript实现图片轮播
    onload

  6. Bom对象
    window :alert confirm prompt settimeout setInterval,cleartimeout clearinterval
    navigator
    screen
    location href
    history

今日重点

  1. ==Javascript中的事件==
  2. ==DOM模型==
  3. JavaScript中内置对象

要求: 完成表单验证+复选框全选

01- 案例三:使用JS完成表单的提示和校验:需求和分析

总结:

  1. 事件 onblur/onfocus/onsubmit
    Onblur: 失去焦点的时候会触发
    Onfocus :获得焦点
    Onsubmit:表单提交
  2. 定义函数 function
  3. 修改标签体中的内容 元素.innerHTML

02- 案例三:使用JS完成表单的提示和校验:代码实现

  1. Span标签:输入提示信息
    <span id=”sp”></span>
  2. 设置事件
    <input onblur=”check()”></input>
  3. Function check(){…..} 函数功能:校验,输出到span
  4. 获得输入框的内容,获得标签document.getElementById(“sp”).value
  5. 添加提示内容:.innerHTML
    总结:onfocus,onblur写在input标签上,onsubmit写在form标签上

03-案例三:使用JS完成表单的提示和校验:总结:JS的常用事件

总结:

  • onsubmit :提交表单
  • onload: 页面加载完执行
  • onclick: 按钮点击
  • onfocus: 获取焦点
  • onblur: 失去焦点
  • ondblclick: 双击事件

键盘操作事件:

  • onkeydown:
  • onkeyup :
  • onkeypress:

鼠标操作事件:

  • onmousemove: 鼠标移动
  • onmouseout: 鼠标移出
  • onmouseover:鼠标移入

案例总结:
用了三个事件:onfocus,onblur,onsubmit
用了一个函数:document.getElementById(ID)
用了一个属性:.innerHTML = “”;

04-案例四:使用JS完成表格隔行换色:需求和分析

1.【步骤一】创建一个HTML页面:可以使用后台设计页面.
2.【步骤二】确定事件:onload事件.
3.【步骤三】触发一个函数.在这个函数中获得操作的表格.
4.【步骤四】获得表格中的所有的行数.
表格对象.rows.length 获得总行数
5.【步骤五】遍历表格的行数.
表格对象.rows 下标从0开始
6.【步骤六】判断是否是奇数行还是偶数行.

05-案例四:使用JS完成表格隔行换色:代码实现

  1. 获得表格
    Document.getElementById()
  2. 总行数tab1.rows.length;
  3. for …. 获得奇数行,偶数行
    for(var i =0;i<length;i++){
         if(i%2==0){
            …  红色
            document.getElementByID(“trow”).style.backgroudColor=”red”;
        }else{
           ..  蓝色
        }
      }
    <table>
        <tr style=”css代码”>
         </tr>
    </table>
    
  4. 修改对应行的CSS .style属性
    .style.backgroundColor (CSS background-color)

06-案例四:使用JS完成表格隔行换色:总结

  1. <thead>
    tr <th>居中,加粗显示</th>
    </thead>
  2. <tbody>
    tr td
    </tbody>

07-案例五:使用JS完成复选框的全选和全不选:需求和分析

1.【步骤一】创建一个HTML页面.
2.【步骤二】确定事件:复选框的单击事件.
3.【步骤三】触发一个函数
4.【步骤四】在函数中,获得上面的复选框是否被选中.
5.【步骤五】如果选中,下面的所有的复选框都被选中.
6.【步骤六】如果不选中,下面的所有的复选框都不选中.

08-案例五:使用JS完成复选框的全选和全不选:代码实现

  1. 复选框的单击事件.
    <input id=”sel” type=”checkbox” onclick=”selectAll()”><input>
  2. 定义函数,判断是否选中
    function selectAll(){
        var flag = document.getElementById(“sel”).checked;
        if(flag){
            //选中
            //选择下面所有checkbox
            //input  name=”name1”
            var arr = document.getElementsByName(“”)
            //选中所有的checkbox
            for(循环数组){
                arr[i].checked = “true”;
        }else{
            //选择下面所有checkbox
            //input  name=”name1”
            var arr = document.getElementsByName(“”)
            //选中所有的checkbox
            for(循环数组){
                arr[i].checked = “false”;
        }
    }
    
  3. 定义函数,判断是否选中
    function selectAll(){
        var flag = document.getElementById(“sel”).checked;
        //选中
        //选择下面所有checkbox
        //input  name=”name1”
        var arr = document.getElementsByName(“”)
        //选中所有的checkbox
        for(循环数组){
            arr[i].checked = flag;
        }
    }
    

09-案例五:使用JS完成复选框的全选和全不选:总结:JS的DOM概述及常用操作

  1. DOM的概念
    图一 DOM模型的概述.bmp
  2. 常用的API(html文档的增删改查)
  3. 获得元素:
    • document.getElementById(); -- 通过ID获得元素.
    • document.getElementsByName(); -- 通过name属性获得元素.
    • document.getElementsByTagName(); -- 通过标签名获得元素.
  4. 创建元素:
    • document.createElement(“标签名称”); -- 创建元素
    • document.createTextNode("文本"); -- 创建文本
  5. 添加节点:
    • element.appendChild(newItem); -- 在最后添加一个节点.
    • element.insertBeforeinsertBefore(newItem,existingItem); -- 在某个元素之前插入.
  6. 删除节点:
    • element.removeChild(existingItem); -- 删除元素

总结:
document对象是HTML文档对应的内存对象
Element: 所有的标签对象
Attribute:所有的属性对象

10-案例五:使用JS完成复选框的全选和全不选:总结:DOM的添加元素的操作

  • 获得UL标签
    document.getElementById(“”)
  • 创建LI标签节点
    liEle = document.createElement(“”)
  • 创建一个文本节点
    textNode = document.createTextNode(“”);
  • 将文本节点追加到LI标签中,将LI标签追加到UL末尾
    liEle.appendChild(textNode);

11-案例六:使用JS完成省市联动的效果:需求和分析

  1. 【步骤一】创建一个HTML文件.
    2.【步骤二】确定事件:onchange事件.
    3.【步骤三】触发函数,在函数中编写代码.
    4.【步骤四】获得到所选择的省份的信息.
    获得被选中的option值 this.value
    5.【步骤五】根据选择的省份的信息获得到对应的数组中的市的数据.
    二维数组实现
    var arr = new Array(5);
    arr[0]=[1,2,3];
    arr[1]=[4,5,6];
    …….
    6.【步骤六】遍历数组中的市的信息.
    7.【步骤七】创建元素,创建文本,最后将元素添加到第二个列表中.

12-案例六:使用JS完成省市联动的效果:代码实现

function changeCity(value){
                // 获得到选中的省份的信息.
                var city = document.getElementById("city");
                // 清除第二个列表中的内容:
                for(var i=city.options.length;i>0;i--){
                    city.options[i] = null;
                }
                // city.options.length = 0;
                //循环获得第一个select中的所有省份
                for(var i= 0 ;i< arrs.length;i++){
                    //挑选出被选中的省份对应的城市数组
                    if(value == i){
                        // 获得该省份所有的市的信息.
                          for(var j=0;j<arrs[i].length;j++){
                            // 创建option元素:
                            document.createElement(“option”)
                            //创建文本节点
                            document.createTextNode((arrs[i][j]))
                            // 将文本的内容添加到option元素中.
                            opEl.appendChild(textNode);
                            // 将option的元素添加到第二个列表中.
                            city.appendChild(opEl);
                        }
                    }
                }
            }

***优化代码:
技术分析:
1.  下拉列表对象.selectedIndex
2.  加强for循环
    for (i in citys) {
        citys[i]//注意:i为下标   
    }

13-案例六:使用JS完成省市联动的效果:总结:JS的内置对象

重点掌握:

// Array 创建:
new Array(长度);
var arr = [1,2,3,4];
arr = [1,2,3,”aaaa”];
// 数组API:
reverse() 反转

// String对象API:
// 对比Java的String类进行学习
substr(开始位置,长度)  “abcdef”.substr(2,3) = “cde”

14-案例六:使用JS完成省市联动的效果:总结:JS的全局函数

// 将字符串转换成数字
parseInt(“123”)  isNaN 
// 将字符串转换成浮点数
parseFloat(“”)
// eval函数:
// 将一段内容当成是JS的代码执行.
var sss = “alert(‘aaaa’)”;
eval(sss);

总结:

  1. JS事件
    ==onclick 点击事件==
    ==ondblclick双击事件==
    ==onload 页面加载==
    ==onsubmit 表单提交事件==
    ==onchange 下拉列表改变==
    ==onfocus 获得焦点==
    ==onblur 失去焦点==

    鼠标相关
    onmouseover 鼠标移入
    onmouseout 鼠标移出
    onmousemove 鼠标移动
    键盘相关
    onkeypress 键盘按键事件
    总结:事件是JS程序的入口

  2. JS的DOM模型
    什么是DOM
    DOM:Document Object Model:文档对象模型.
    将一个HTML的文档加载到内存形成一个树形结构,从而操作树形结构就可以改变HTML的样子.
    ==document对象:表示文档在内存中的树状图==
    ==Element 对象:表示所有的标签==
    ==Attribute对象:标签中的所有的属性==
    HTML文档中一切皆Node(节点)
    常用的API:

    1. 获得元素
      document.getElementById() 通过ID获得标签
      document.getElementsByName() 通过name属性获得一组标签
      document.getElementsByTagName() 通过标签名称获得一组标签
    2. 创建元素
      document.createElement(名字)
      document.createTextNode(文字)
    3. 添加元素
      父标签.appendChild(子标签)
      element.insertBefore(新标签,之前的标签) 某个标签前添加新标签
    4. 删除元素
      父标签.removeChild(子标签)
  3. 内置对象
    Array 数组
    数组定义
    var arr = new Array(length)
    var arr = [];
    特点:js数组长度可变并且类型不固定
    arr = [1,2,3,”aaaa”];
    String 类似Java

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

推荐阅读更多精彩内容

  • 一、JS前言 (1)认识JS 也许你已经了解HTML标记(也称为结构),知道了CSS样式(也称为表示),会使用HT...
    凛0_0阅读 2,752评论 0 8
  • 第1章 认识JS JavaScript能做什么?1.增强页面动态效果(如:下拉菜单、图片轮播、信息滚动等)2.实现...
    mo默22阅读 1,238评论 0 5
  • 本人做php的,最近发现JS真的是博大精深啊,比PHP难.在HTML中,表单是由form元素来表示的,但是在jav...
    linfree阅读 2,133评论 3 17
  • 第1章 系好安全带,准备启航 1.1让你认识JS 1.1.1 JavaScript能做什么?增强页面动态效果(...
    张中华阅读 1,347评论 4 10
  • 作词:默默 作曲:野孩子 落着雨的无锡 站在清明桥上 看着来来回回的人们 看着相爱的人已经远去 无锡,你好 窗外的...
    云岩小屋阅读 365评论 1 2