传智黑马前端笔记

day1 HTML

案例1-网站信息展示
需求:
    在页面展示一些文字信息,需要排版
技术分析:
    html:超文本标签语言
////////////////////
html:
    作用:展示
    超文本:超越了一般文本,描述文本的字体 颜色 图片
    标签:标记
    html书写规则:
        文件的后缀名  .html(建议) 或者 .htm
        标签必须用 <> 引起来 已经定义好的标签
        属性 
            格式: key="value"
            建议属性的值用引号引起来.
        不区分大小写
    注意:
        最好将所有的内容放在一个标签中 <html></html>

        有开始标签和结束标签的标签称之为围堵标签
        没有结束的标签的称之为空标签  <br/>
        开始标签和结束标签之间的内容称之为标签体.
        <!--注释内容--> html页面中的注释
        标签必须正常嵌套,
        标签最好关闭
文件标签:
    html标签:
        声明当前网页为html页面
        子标签:
            <head></head>
            <body></body>
        head:用来存放当前页面的重要信息,一般不展示在html页面上
            常见的子标签:
                <title></title> 网页的标题
        body:
            要展示的数据放在body中
标题标签:
    <hn></hn>
    n取值 :1~6
        h1最大  h6最小
        自动换行 且留白 默认加粗
    常用属性:
        align:对齐方式
            left:左  right:右 center:居中
    格式:
        <h2 align="center"></h2>  属性都写在第一个<>里
        //////
字体标签:(了解)规定文本的字体、字体尺寸、字体颜色。
    <font></font>
    常用属性:
        face:字体
        size:尺寸
        color:颜色
颜色的取值:(RGB)
    方式1: #xxxxxx  x为16进制
    方式2: 英文单词
段落标签:
    <p></p>
其他标签:
    <b></b>  <strong></strong>加粗 
    <i></i> 斜体
水平线
    <hr/>
换行
    <br/>
//////////////////////////
案例1-步骤分析:
    1.新建一个html页面
    2.标题标签
    3.添加一个水平线
    4.4个段落
    5.添加字体颜色 加粗 斜体
/////////////////////
案例2-图片网页展示
需求:
        在一个页面中展示多张图片
技术分析:
    <img/>
图片标签:★
    <img/>
        常用属性:
            ★src:图片的路径
            alt:替代文字
            title:移上去显示的文字
            width:宽
            height:高
    大小的写法:
        像素:123px
        百分比:20%
    路径的写法:
        相对路径:
            ./ 或者 什么都不写  当前目录
            ../  上一级目录
        绝对路径:
            带协议的绝对路径:
                http://www.itheima.com
实现:
////////////////
案例3-列表页面展示
需求:
    将友情连接的页面通过列表展示出来
技术分析:
    列表标签
列表标签:

 
    <ol></ol> 有序
    <ul></ul> 无序
    
    常用的标签
        <li></li> 列表项
超链接标记
    <a></a>
        常用属性:
            href:跳转路径
            target:在那里打开
                默认值:_self  _blank(在空白页面打开)
////////////////////////
案例4-首页信息的展示
需求:
    通过表格布局将首页信息展示
技术分析:
    表格表格
表格标签★
    <table></table>
        常用的子标签
            <tr>:行
    <tr></tr>
        常用子标签:
            <td>:列
            <th>:表头单元格 默认居中加粗
        注意:
            一行必须只有有一个单元格或者一列
    //////////////////

    table 的常用属性:
        border:边框  像素值
        width:
        align:表格对齐方式
    tr 的常用属性:
        align:内容对齐
    td 的常用属性:
        align:内容对齐
        colspan:跨列合并 值:合并的列数
        rowspan:跨行合并
步骤分析:
    1.常见一个8行1列的表格
    2.在第一行 放logo
        嵌套一个1行3列的表格
    3.第2行 放菜单
    4.第3行 放图片
    5.第4行 热门商品
        嵌套一个2行7列的表格
    
    6.第5行 放广告图片
    7.第6行 最新商品
        嵌套一个2行7列的表格
    8.第7行 放一个图片
    9.第8行 
        两个段落
///////////////////////
案例5-表单页面
需求:
    设计一个表单页面,用来收集用户的数据
技术分析:
    表单标签
表单标签★★★
    <form></form>
    作用:
        用来从浏览器端收集用户的信息.
步骤分析:
    1.在页面中间添加一个表格
    2.10行3列表格
    3.在表格中添加表单表单子标签
/////////////////////////////////
案例6-后台管理页面(了解)
需求:
    开发一个后台管理页面,通过frameset实现
技术分析:
    frameset:框架集
    frame:具体实现
frameset:框架集(了解)
    常用属性:
        cols:垂直切割
            例如: cols="40%,60%"
            例如: cols="40%,*,10%"
        rows:水平切割
    常见的子标签:
        frame
    注意:
        最好和body不要共存
frame:具体实现
    常用属性:
        src:展示的页面的url

//////////////
补充:
    转义字符:
        三部分构成 &实体;
        掌握的转义字符:
            >    &gt;  //great then
            <    &lt;
            &    &amp;
            空格 &nbsp;
    //////////////////////
    meta
        元信息
        <meta charset="UTF-8">指定浏览器用什么编码打开此页面

day2 CSS&JS

回顾:
html:
    作用:展示
    文件标签:
        <html>
            <head>
                <title></title>
            </head>
            <body></body>
        </html> 
    排版标签:
        p 段落
        hr 水平线
        br 换行
    字体
        h1~h6 标题
        font 字体 大小 颜色
        b strong 加粗
        i 斜体
    图片★
        <img src="图片的路径" alt="替代文字" width="" height=""/>
        路径的写法:
            相对路径:
                ./ 或者 什么都不写  当前目录
                ../ 上一级目录
            绝对路径:常用
                http://www.itheima.com/xx
    超链接★
        <a href="跳转的路径" target="在什么地方打开"></a>
    
    表格标签 ★★
        <table border="" width="" height="" bgcolor="" align="表格对齐方式">
            <tr align="内容对齐方式">
                <th></th>      <!--表头单元格-->
                <td></td>     <!--普通单元格-->
            </tr>
        </table>
        
        td重要的属性:
            colspan:列合并
            rowspan:行合并
    
    列表:
        <ol></ol>
        <ul></ul>
        
        子标签:列表项
            <li></li>
    
    
    form 表单标签:
        常用属性
            action:提交的路径
            method:提交的方式(get和post)
        常用子标签
            input
            select
            textarea
            
        input标签
            常用属性:
                type:
                    text
                    password
                    radio
                    checkbox
                    file
                    
                    submit
                    reset
                    button
                    
                    hidden
                    image
                name:
                    要想将信息提交到服务器必须提供name属性
                    将单选框和复选框设置成一组
                
                value:
                    text password  设置默认值
                    radio checkbox 设置选中后提交的值
                    submit reset button 给按钮起个显示的名字
        select:下拉选
            <select name="">
                <option value="">显示的名字</option>
            </select>
        
        textarea:文本域
            <textarea cols="" rows="" name="">默认值</textarea>
        
        给单选框多选框设置默认值
            设置属性 checked="checked"
        给下拉选设置默认值
            设置属性 selected="selected"
            
        提交的路径(get)
            http://ssdfsdfsfd?key=vaule&key=value
            例如:
                http://localhost/day/login.jsp?username=tom&password=123
                    
    框架(了解)
        frameset:规定框架结构  框架集
            常用属性:
                rows:水平qiege
                cols:垂直切割
            常用子标签    
                frame:具体实现
                
            例如:水平切割3份
                <frameset rows="15%,*,10%">
                    <frame>
                    <frame>
                    <frame>
                </frameset>
        frame:
            常用的属性:
                src:具体展示那个网页
                name:给当前的frame起个名称 方便超链接使用
////////////////////
案例1-用div+css重新布局首页
技术分析:
    div
    css
/////////////
div:
    块标签
    <div></div>
span:行内的块标签
    <span><span>
////////////
css:渲染
    层叠样式表
    作用:
        渲染页面
        提高工作效率
    格式:
        选择器{属性:值;属性1:值1;}
    后缀名:
        .css 独立的css(样式)文件
    和html元素的整合★
        方式1:内联样式表 通过标签的style属性设置样式
        方式2:内部样式表 在当前页面中使用的样式
            通过head标签的style子标签导入
            例如:
                <style>
                    #divId2{
                        background-color: #0f0;
                    }
                </style>
                
        方式3:外部样式表 有独立的css文件
            通过head标签的link子标签导入
            例如:
                <link rel="stylesheet" href="css/1.css" type="text/css"/>
    选择器:★
        id选择器
            要求:
                html元素必须有id属性且有值   <xxx id="id1"></xxx>
                css中通过"#"引入,后面加上id的值  #id1{...}
        class选择器
            要求:
                html元素必须有class属性且有值 <xxx class="cls1"/>
                css中通过"."引入,后面加上class的值  .cls1{...}
        元素选择器
            直接用元素(标签)名

即可   xxx{...}
        
    派生的选择器
        属性选择器★
            要求:
                html元素必须有一个属性不论属性是什么且有值  <xxx nihao="wohenhao"/>
                css中通过下面的方式使用
                    元素名[属性="属性值"]{....}
                    例如:
                        xxx[nihao="wohenhao"]{....}
        后代选择器
            选择器 后代选择器{...}   在满足第一个选择器的条件下找后代的选择器,给满足条件的元素添加样式
    了解的选择器
        锚伪类选择器
            a:link {color: #FF0000}    /* 未访问的链接 */
            a:visited {color: #00FF00}    /* 已访问的链接 */
            a:hover {color: #FF00FF}    /* 鼠标移动到链接上 */
            a:active {color: #0000FF}    /* 选定的链接 */

    
    选择器使用小结:
        id选择器:一个元素(标签)
        class选择器:一类元素 
        元素选择器:一种元素
        属性选择器:元素选择器的特殊用法
    使用的时候注意:(了解)
        若多个样式作用于一个元素的时候
            不同的样式,会叠加
            相同的样式,最近原则
        若多个选择器作用于一个元素的时候
            越特殊优先级越高 id优先级最高
//////////////////////
属性(了解)
    字体
        font-family:设置字体(隶书) 设置字体家族
        font-size:设置字体大小
        font-style:设置字体风格
    文本:改变文本的颜色、字符间距,对齐文本,装饰文本,对文本进行缩进
        color:文本颜色
        line-height:设置行高
        text-decoration: 向文本添加修饰。 none underline
        text-align:对齐文本
    列表:
        list-style-type:设置列表项的类型 例如:a 1  实心圆 
        list-style-image:设置图片最为列表项类型 使用的时候使用 url函数  url("/i/arrow.gif");
    背景:
        background-color:设置背景颜色
        background-image:设置图片作为背景 url
    尺寸:
        width:
        height:
    浮动:
        float: 可选值 left right
        
    分类:
        clear:设置元素的两边是否有其他的浮动元素
            值为:both 两边都不允许有浮动元素
        display:设置是否及如何显示元素。
            none 此元素不会被显示。 
            block 此元素将显示为块级元素,此元素前后会带有换行符。 
            inline 默认。此元素会被显示为内联元素,元素前后没有换行符。
框模型:(理解)
    一个元素外面有padding(内边距) border(边框) margin(外边距)
        padding:元素和边框的距离
        margin:元素最外层的空白
    上面这三个属性都有简写的属性
        若设置大小的时候 四个值:顺序 上右下左
            padding:10px 10px 10px 10px
            若只写一个的话 代表四个边使用同一个值  padding:10px
            若只写两个个的话 代表四个边使用同一个值 padding:10px 20px
            若只写三个个的话 代表四个边

边使用同一个值 padding:10px 20px 30px
    border(边框)
        还可以设置颜色 风格
        简写属性:
            border:宽度    风格 颜色;

            border:5px solid red;
            
            solid:实线
            dashed:虚线
            double:双实线
步骤分析:
    1.创建一个div
    2.在这个div中创建8个div
    3.第1个div logo
        嵌套三个div
    4.第2个div 菜单
        嵌套一个列表 display:inline
    5.第3个div 轮播图
        
    6.第4个div 热门商品 
        标题标签 图片display:inline
        a:两个div
            左边的div 展示一张图片
            右边的div 展示所有商品
        b.右边的div中嵌套10个div
    3.第5个div 广告
    3.第6个div 最新商品
    3.第7个div 广告
    3.第8个div foot 版权
        两个p标签
////////////////////////////////    
javascript 俗称 js
案例1-校验表单
需求:
    表单提交的时候需要校验数据是否完整,若不满足条件,则使用弹出框提示.
技术分析:
    js
//////////////////////
JavaScript一种直译式脚本语言,是一种动态类型、弱类型、基于原型的语言,
    内置支持类型。它的解释器被称为JavaScript引擎,为浏览器的一部分,广泛用于客户端的脚本语言
组成部分:
    ECMAScript:js基础语法(规定 关键字 运算符 语句 函数等等...)
    BOM:浏览器对象模型
    DOM:文档对象模型
作用:
    修改html页面的内容
    修改html的样式
    完成表单的验证
注意:
    js可以在页面上直接写,也可以单独出去
    js的文件的后缀名 .js
js和html整合
    方式1:在页面上直接写
        将js代码放在 <script></script>标签中,一般放在head标签中
    方式2:独立的js文件
        通过script标签的src属性导入
js中变量声明:
    var 变量名=初始化值;
    var 变量名;
        变量名=初始化值;
    注意:
        var可以省略 建议不要省略
        一行要以分号结尾,最后一个分号可

以省略,建议不要省略
js的数据类型:
    原始类型:(5种)
        Null
        String
        Number
        Boolean
        Undefined
        通过 typeof运算符可以判断一个值或者变量是否属于原始类型,若属于原始类型,他还可以判断出属于那种原始类型
            typeof 变量|值;
        若变量为null,使用typeof弹出的值 object
        
        使用typeof的返回值
            undefined - 如果变量是 Undefined 类型的 
            boolean - 如果变量是 Boolean 类型的 
            number - 如果变量是 Number 类型的 
            string - 如果变量是 String 类型的 
            object - 如果变量是一种引用类型或 Null 类型的 

    引用类型:
//////////////////////
js:事件驱动函数
    函数定义格式:
        方式1:
            function 函数名(参数){
                函数体;
            }
        注意:函数不用声明返回值类型 
            参数不需要加类型
            函数调用的时候
                函数名(参数)
js中的事件:
    常见的事件:
        单击:  onclick
        表单提交: onsubmit 加在form表单上的 onsubmit="return 函数名()"  注意函数返回值为boolean类型
        页面加载: onload
        
js事件和函数的绑定:
    方式1:
        通过标签的事件属性   <xxx onclick="函数名(参数)"></xxx>
js获取元素:
    方式1:
        var obj=documnet.getElementById("id值");
获取元素的value值
    obj.value;
获取元素的标签体中的内容
    obj.innerHTML;
////////////////////
案例2-步骤分析:
    1.先有一个表单
    2.在form上添加一个事件 onsubmit="return checkForm()"
    3.编写checkForm这个方法
    4.获取每个表单子标签的内容
    5.判断是否满足要求,
        若满足,不用管他
        若不满足,表单不能提交,返回false,且提示信息.
///////////////////////////
函数的定义:
    方式1:
        function 函数名(参数){
            函数体;
        }    
    
    方式2:
        var 函数名=function(参数){
            函数体;
        }
        
js事件和函数的绑定:
    方式1:
        通过标签的事件属性   <xxx onclick="函数名(参数)"></xxx>
    方式2:
        给元素派发事件
            document.getElementById("id值").onclick=function(参数){....}
            document.getElementById("id值").onclick=函数名

        注意:
            内存中应该存在该元素才可以派发事件
        a.将方式2的js代码放在html页面的最下面
        b.在页面加载成功之后在运行方式2的js代码  onload事件.
////////////////////////
案例3-轮播图片
需求:
    每隔3秒图片更新一下
技术分析:
    bom中window对象的定时器方法
定时器:
    var id=setInterVal(code,毫秒数):每隔指定的毫秒数执行一次函数 周期
    var id=setTimeout(code,毫秒数):延迟指定的毫秒数之后 只执行一次函数

    
    清除定时器:
        clearInterval(id);
        claerTimeout(id);
String对象
    原始类型的String是一个为对象可以直接调用String类对象的方法
    substring(0,endIndex);//输出两下标之间的值  substring(s,e)输出下标s到下标e-1
////////////////
步骤分析: 
    1.在首页上面绑定一个onload事件
    2.事件绑定的函数中编写一个定时器
    3.定时器每隔3秒更换图片
        imgObj.src="";
///////////////
补充:
    运算符:
        比较运算符: > >= < <=
        若两边都是数字 和java一样
        若一般为数字,另一边为字符串形式的数字,将字符串形式的数字转换成数字在进行比较   3>"2"
        若一般为数字,另一边为字符串,返回一个false   3>"hello"
        两边都是字符串的时候,比较ascii
    等性运算符 == ===
        == :只判断值是否相同
        ===:不仅判断是否相同,还要判断类型是否相同

语句:
    if语句 和java一样
    for while 语句和java一样
    switch 和java一样(区别,switch 后面跟字符串. 还可以跟变量)
/////////////////////////////////////

总结:掌握
    1.css和html整合
        方式3种 
    2.css中选择器:
        id class 元素
        属性 后代 
    3.js
        js和html整合
            方式两种
    4.变量定义
    5.函数定义
        2中格式
    6.事件
        onclick onload onsubmit
    7.事件和函数的绑定
           2中方式
    8.定时器 2种
    9.for while if
    

day3 js

回顾:
css:
    层叠样式表
    作用:
        渲染页面
        提供工作效率,将html和样式分离
    和html的整合
        方式1:内联样式表
            通过标签的style属性  <xxx style="..."/>
        方式2:内部样式表
            通过head的子标签Style子标签
                <style type="text/css">
                    选择器{
                        属性:值;
                        属性1:值1;
                    }
                </style>
        方式3:外部样式表
            有一个独立css文件.后缀名:.css
            在html中通过link标签导入
    
    选择器:
        id选择器
            html元素有id属性且有值   <xx id="d1">
            css中通过 # 导入   #d1{...}
        类选择器
            html元素有class属性且有值 <xx class="c1">
            css中通过 . 导入    .c1{...}
        元素选择器
            css中通过标签名即可  xx{...}
        属性选择器
            html元素有一个属性且有值 <xx att="val1">
            css中通过元素名[属性="值"]使用   xx[att="val1"]{...}
        后代选择器
            选择器 后代选择器
        锚伪类(了解)
    //////////////////
    字体 文本 背景 列表 分类(clear display:none block inline)
    框模型:
        一个元素外边有内边距 边框 外边距
        顺序:上右下左
//////////////////////////////////////
js
    javascript 脚本语言 解释性 基于对象 事件驱动函数
    js的组成:
        ECMAScript(语法)
        BOM(浏览器对象模型)
        DOM(文档对象模型)
    html和js的整合
        方式1:内部编写js
            <script type="text/javascript">js代码</script>
        方式2:
            外部有一个独立的js文件  后缀名:.js
            在html中通过script的src属性导入
                <script src="js的路径"></script>
        注意:
            一旦使用了src属性,那么script标签体中的js代码将不再执行了.
            
    变量:
        var 变量名=初始化值;
    数据类型:
        原始类型(5种)
            Undefined
            Null
            String 用引号引起来的内容
            Number
            Boolean
            
            通过typeof可以判断一个值或者变量是否是原始类型,若是原始类型,还可以判断属于那种.
                typeof 变量|值
        引用类型
    运算符:
        关系运算符:
            两边值都是字符串,比较ascii码
            两边都是数字,和java一样
            一边是数字,一遍是字符串形式的数字, 可以比较
            一边是数字,一遍是普通字符串 可以比较 值永远是false
        等性运算符
            "66"==66  true
            "666"===666 false
    js的语句
        if while for 和java一样
    //////////////////
    获取元素:
        var obj=document.getElementById("id值");
    获取元素的value属性
        var val=document.getElementById("id值").value;
    设置元素的value属性    
        document.getElementById("id值").value="sdfsdf";
    获取元素的标签体 
        var ht=document.getElementById("id值").innerHTML;
    设置元素的标签体
        document.getElementById("id值").innerHTML="ssss";
    
    定义函数:
        方式1:function 函数名(参数列表){函数体}
        方式2:
            var 函数名=function(参数列表){函数体}
        注意:
            函数声明的时候不用声明返回值类型
            参数列表上不要写参数类型
            通过return结束方法和将值返回
    
    事件:
        onclick 单击
        onsubmit 表单提交
        onload  页面加载成功或者元素加载成功
        
    事件和函数绑定
        方式1:通过元素的事件属性
            <xxx onxxx="函数名(参数列表)">
        方式2:派发事件
            document.getElementById("id值").onxxx=function(){...};
            document.getElementById("id值").onxxx=函数名;
/////////////////////////////////
案例1-定时弹出广告
需求:
    打开页面后4秒,展示广告,2秒之后,该广告隐藏.再停2秒,继续展示.
技术分析:
    定时器
定时器(BOM-window对象)
    setInterval(code,毫秒数):周期执行
    setTimeout(code,毫秒数):延迟多长事件后 只执行一次.
    
    清除定时器
        clearInterval(id):
        clearTimeout(id):
步骤分析:
    1.确定事件
    2.编写函数
        a.获取元素
        b.操作元素
////////////////////////
    1.html页面,先把广告隐藏
    2.页面加载成功事件 onload
    3.编写函数
        定时器:
        操作元素:
            document.getElementById("")
        操作css属性(用style对象)
            document.getElementById("id").style.属性="值"
            属性:就是css中属性 
                注:css属性有"-" 例如:backgroud-color
                        若有"-" 只需要将"-"删除,后面第一个字母变大写即可
    注意:
        只要是window对象的属性和方法,可以把window省略
            window.onload 等价于 onload
            window.setInterval() 等价于 setInterval()
////////////////////
bom(浏览器对象模型)总结
    所有的浏览器都有5个对象
        window:窗口
        location:定位信息 (地址栏)
        history:历史
window对象详解:
    如果文档包含框架(frame 或 iframe 标签),浏览器会为 HTML 文档创建一个 window 对象,
    并为每个框架创建一个额外的 window 对象。
    常用的属性:
        通过window可以获取其他的四个对象
            window.location 等价域 location
            window.history 等价于 history
            ...
    常用的方法
        消息框
            alert("...."):警告框
            confirm("你确定要删除吗?"):确定框 返回值:boolean
            prompt("请输入您的姓名"):输入框 返回值:你输入的内容
        定时器
            设置定时器
                setInterval(code,毫秒数):周期执行
                setTimeout(code,毫秒数):延迟多长事件后 只执行一次.
                
                例如:
                    setInterval(showAd,4000);
                    serInterval("showAd()",4000);
            
            清除定时器
                clearInte

rval(id):
                clearTimeout(id):
        打开和关闭
            open(url):打开
            close():关闭
/////////////////////////
location:定位信息    
    常用属性:
        href:获取或者设置当前页面的url(定位信息)
        
        location.href; 获取url
        location.href="...";设置url 相当于 a标签
//////////////////////
history:历史
    back();后退
    forward():向前
    ★go(int)
        go(-1) 相当于 back()
        go(1) 相当于 forward()
//////////////////////////////////////
案例2-表单校验plus
需求:
    提示信息不用弹出框,将信息追加在文本框后面
技术分析:
    确定事件 表单提交的时候 onsubmit
            文本框失去焦点的时候 onblur
    编写函数
    获取元素
        document.getElementById("id值");
    操作元素(获取元素的值,操作标签体,操作标签value属性)
/////////////////
步骤分析:
    1.表单
    2.表单提交的时候 确定事件 onsubmit()
    3.校验用户名和密码
    4.获取用户名和密码的对象及值
    5.判断内容,当为空的时候,获取响应的span元素
        往span元素中显示错误信息
////////////////////////
注意:
    在方法中(function()) this指代的是当前的元素(当前dom对象)
例如:
    <input type="text" name="username" id="username" onblur="loseFocus(this.value)">
    方法:
        function loseFocus(obj){
            alert(obj);
        }
/////////////////////////////
事件总结:
    常见的事件:
        焦点事件:★
            onfocus
            onblur
        表单事件:★
            onsubmit
            onchange 改变
        页面加载事件:★
            onload
        
        鼠标事件(掌握)
            onclick
        鼠标事件(了解)
            ondblclick:双击
            onmousedown:按下
            onmouserup:弹起
            onmousemove:移动
            onmouserover:悬停
            onmouserout:移出
        键盘事件(理解)
            onkeydown:按下
            onkeyup:弹起
            onkeypress:按住
////////////
绑定事件:
    方式1:
        元素的事件属性
    方式2:
        派发事件
///////////////////
了解
    阻止默认事件的发生
    阻止事件传播
/////////////////
案例3-隔行换色
需求:
    一个表格,隔一行换一个色
技术分析:
    事件:onload 
    获取元素:dom操作
///////////////
获取元素:
    document.getElementById("id"):通过id获取一个元素
    document.getElementsByTagName("标签名"):通过标签名获取一种元素(多个)返回一个数组
Array:
    常用属性:
        length:数组的长度
////////////////////////
步骤分析:
    1.html表格一加载的时候 确定事件 onload
    2.编写函数
        a.获取元素(所有的tr元素)
        b.操作(若当前行是偶数的话加一个样式,若是奇数的话,加另一个样式)
////////
    //页面加载成功
            onload=function(){
                //1.获取所有的tr
                var arr=document.getElementsByTagName("tr");
                //alert(arr);
                //alert(arr.length);
                
                //2.判断奇偶数 添加不同的样式 遍历数组
                for(var i=1;i<arr.length;i++){
                    if(i%2==0){
                        arr[i].style.backgroundColor="#FFFFCC";
                    }else{
                        arr[i].style.backgroundColor="#BCD68D";
                    }
                }
                
            }
//////////////////////////
案例4:全选或者全不选
步骤分析:
    1.确定事件 最上面那个复选框的单击事件 onclick
    2.编写函数:让所有的复选框和最上面的复选框状态保持一致
        a.获取最上面这个复选框选中状态 通过checkbox的checked属性即可
        b.获取其他的复选框,设置他们的checked属性即可
            可以通过以下两种方案获取元素
                document.getElementsByClassName():需要给下面所有的复选框添加class属性
                document.getElementsByName():需要给下面所有的复选框添加name属性

//////////////////////////////////
dom(文档对象模型)
    当浏览器接受到html代码的时候,浏览器会将所有的代码装载到内存中,形成一棵树(document树)
    节点(Node)
        文档节点 document
        元素节点 element
        属性节点 attribute
        文本节点 text
    获取节点:
        通过document可以获取其他节点:
            常用方法:
                document.getElementById("id值"):获取一个特定的元素
                document.getElementsByTagName("标签名"):通过标签名获取一种元素(多个)
                document.getElementsByClassName("class属性的值"):通过class属性获取一类元素(多个)
                document.getElementsByName("name属性的值"):通过name属性获取一类元素(多个)
        设置获取获取节点的value属性
            dom对象.value;获取
            dom对象.value="";设置
        设置或者获取节点的标签体
            dom对象.innerHTML;获取
            dom对象.innerHTML="";设置
        获取或者设置style属性
            dom对象.style.属性;获取
            dom对象.style.属性="";设置
        获取或者设置属性
            dom对象.属性
/////////////////////////
对于htmldom的操作若在js或者htmldom 查找不到 去查找xml dom
    关于文档的操作 在 xml dom 的document中
    关于元素的操作 在 xml dom 的element中
        appendChild(dom对象):在一个元素下添加孩子
//////////////////////////////////////
案例5-左右选中.
需求:
技术分析:
    1.确定事件,按钮的单击事件
    2.编写函数:
        点击移动单|多个的:
            a.获取左边选中的选项  select对象.options--数组
                遍历数组 判断是否选中 option对象.selected
            b.将其追加到右边的下拉选中
                rightSelect对象.appendChild(option);
        点击移动所有的
            a.获取左边的所有的选项
            b.一个个的追加过去
///////////////////////
案例6-省市联动
需求:
    选中省的时候,动态的查询当前省下的所有市,然后展示在市的下拉选中
技术分析:
    数组:
////////////////////////
数组:
    语法:
        new Array();//长度为0
        new Array(size);//指定长度的
        new Array(e1,e2..);//指定元素
        非官方
            var arr4=["aa","bb"];
    常用属性:
        length
    注意:
        数组是可变的
        数组可以存放任意值
    常用方法:(了解)
        存放值:对内容的操作
            pop():弹    最后一个
            push():插入 到最后
            
            shift():删除第一个
            unshift():插入到首位
        打印数组:
            join(分隔符):将数组里的元素按照指定的分隔符打印
        拼接数组:
            concat():连接两个或更多的数组,并返回结果。
        对结构的操作:
            sort();排序
            reverse();反转
////////////////////////
步骤分析:
    1.省的下拉选 的选项中添加value属性 当成数组的索引
    2.初始化市
    3.选择省的时候,onchange事件
    4.编写函数,
        通过获取的索引获取对象的市的数组 this.value
        遍历数组,将数组里面的每个值组装option 添加到select中即可
            
//////////////////////////////
引用类型总结:
    原始类型中的String Number Boolean都是伪对象,可以调用相应的方法
    Array:数组
    String:
        语法:
            new String(值|变量);//返回一个对象
            String(值|变量);//返回原始类型
        常用方法:
            substring(start,end):[start,end)
            substr(start,size):从索引为指定的值开始向后截取几个
            
            charAt(index):返回在指定位置的字符。
            indexOf(""):返回字符串所在索引
            
            replace():替换
            split():切割
            
        常用属性:length    
    Boolean:
        语法:
            new Boolean(值|变量);
            Boolean(值|变量);
            非0数字 非空字符串 非空对象 转成true
    Number
        语法:
            new Number(值|变量);
            Number(值|变量);
        注意:
        
            null====>0 
            fale====>0 true====>1
            字符串的数字=====>对应的数字
            其他

的NaN
    Date:
        new Date();
        常用方法:
            toLocalString()
    RegExp:正则表达式
        语法:
            直接量语法  /正则表达式/参数
            直接量语法  /正则表达式/
            
            new RegExp("正则表达式")
            new RegExp("正则表达式","参数") 
            参数:
                i:忽略大小写
                g:全局
            常用方法:
                test() :返回值为boolean
    Math:
        Math.常量|方法
        Math.PI
        Math.random()  [0,1)
        
    全局:
        ★
        decodeURI() 解码某个编码的 URI。 
        encodeURI() 把字符串编码为 URI。

        Number():强制转换成数字
        String():转成字符串
        
        parseInt():尝试转换成整数
        parseFloat():尝试转换成小数
        
        eval() 计算 JavaScript 字符串,并把它作为脚本代码来执行。 
        
        
        
        
            
            
            
            
            
            
            
//////////////////////////////////////////////////////////////////////
            
//////////////////////////////////////////////////////////////////////        
上午回顾:
BOM(浏览器对象模型)
    window对象:窗口
        注意:
            若是window对象的属性和方法,调用的时候可以省略window
        常用属性:
            通过window可以获取其他的四个对象
                window.location 等价于 location
    
        常用方法:
            消息框
                alert() 警告框
                confirm() 确认框 返回值:boolean
                prompt()    输入框 返回值:输入的内容
            定时器
                设置
                    setInterval(code,毫秒数):循环
                    setTimeout(code,毫秒数):延迟 只执行一次
                清除
                    clearInterval(id):
                    clearTimeout(id):
            打开和关闭
                open(url)
                close()
    location对象:定位信息 地址栏
        常用属性:
            href:获取或者设置当前页面的url
                location.href:获取
                location.href="url":设置 相当于超链接
    history对象:操作历史
        常用方法:
            go()
////////////////////////////
事件:
    焦点:★
        onfocus:获取焦点
        onblur:失去焦点
    表单事件:★
        onsubmit: form表单里的
        onchange:改变(下拉选)
    页面或者对象加载:★
        onload:
    鼠标:★
        onclick:单击
    键盘:
        onkeyup:

        
dom(★)
    获取元素的方法(4个) document
    操作元素的属性  dom对象.属性;

引用类型:
    array
    string
        substring
    全局:
        编码2个
        强制转化 Number String
        尝试  parseXxx
        eval() 解析字符串形式的js代码
    Math random()

猜你喜欢

转载自blog.csdn.net/hza419763578/article/details/81207125
今日推荐