zoukankan      html  css  js  c++  java
  • javaScript:高级

    DOM的简单学习:

    功能:控制html文档的内容
    * 获取页面标签(元素)对象:Element
      * document.getElementById("id值"):通过元素的id获取元素对象

    * 操作Element对象:
      1. 修改属性值:
        1. 明确获取的对象是哪一个?
        2. 查看API文档,找其中有哪些属性可以设置
      2. 修改标签体内容:
        * 属性:innerHTML
        1. 获取元素对象
        2. 使用innerHTML属性修改标签体内容

    事件绑定实现

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>事件绑定</title>
    </head>
    <body>
    <img id="light" src="img/off.gif"  onclick="fun();">
    <img id="light2" src="img/off.gif">
    <script>
        function fun(){
            alert('我被点了');
            alert('我又被点了');
        }
        function fun2(){
            alert('咋老点我?');
        }
        //1.获取light2对象
        var light2 = document.getElementById("light2");
        //2.绑定事件
        light2.onclick = fun2;
    </script>
    </body>
    </html>
    View Code

    案例1:电灯开关

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>电灯开关</title>
    
    </head>
    <body>
    
    <img id="light" src="img/off.gif">
    
    <script>
        /*
            分析:
                1.获取图片对象
                2.绑定单击事件
                3.每次点击切换图片
                    * 规则:
                        * 如果灯是开的 on,切换图片为 off
                        * 如果灯是关的 off,切换图片为 on
                    * 使用标记flag来完成
    
         */
    
        //1.获取图片对象
        var light = document.getElementById("light");
    
        var flag = false;//代表灯是灭的。 off图片
    
        //2.绑定单击事件
        light.onclick = function(){
            if(flag){//判断如果灯是开的,则灭掉
                light.src = "img/off.gif";
                flag = false;
    
            }else{
                //如果灯是灭的,则打开
    
                light.src = "img/on.gif";
                flag = true;
            }
    
    
        }
        
        
    
    </script>
    </body>
    </html>
    View Code
    Window:窗口对象
        1. 创建
    2. 方法
    1. 与弹出框有关的方法:
    alert() 显示带有一段消息和一个确认按钮的警告框。
    confirm() 显示带有一段消息以及确认按钮和取消按钮的对话框。
    * 如果用户点击确定按钮,则方法返回true
    * 如果用户点击取消按钮,则方法返回false
    prompt() 显示可提示用户输入的对话框。
    * 返回值:获取用户输入的值
    2. 与打开关闭有关的方法:
    close() 关闭浏览器窗口。
    * 谁调用我 ,我关谁
    open() 打开一个新的浏览器窗口
    * 返回新的Window对象
    3. 与定时器有关的方式
    setTimeout() 在指定的毫秒数后调用函数或计算表达式。
    * 参数:
    1. js代码或者方法对象
    2. 毫秒值
    * 返回值:唯一标识,用于取消定时器
    clearTimeout() 取消由 setTimeout() 方法设置的 timeout。

    setInterval() 按照指定的周期(以毫秒计)来调用函数或计算表达式。
    clearInterval() 取消由 setInterval() 设置的 timeout。

    3. 属性:
    1. 获取其他BOM对象:
    history
    location
    Navigator
    Screen:
    2. 获取DOM对象
    document
    4. 特点
    * Window对象不需要创建可以直接使用 window使用。 window.方法名();
    * window引用可以省略。 方法名();
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Window对象</title>
    
    </head>
    <body>
        <input id="openBtn" type="button" value="打开窗口">
        <input id="closeBtn" type="button" value="关闭窗口">
    
        <script>
            /*
                Window:窗口对象
                    1. 创建
                    2. 方法
                         1. 与弹出框有关的方法:
                            alert()    显示带有一段消息和一个确认按钮的警告框。
                            confirm()    显示带有一段消息以及确认按钮和取消按钮的对话框。
                                * 如果用户点击确定按钮,则方法返回true
                                * 如果用户点击取消按钮,则方法返回false
                            prompt()    显示可提示用户输入的对话框。
                                * 返回值:获取用户输入的值
                         2. 与打开关闭有关的方法:
                            close()    关闭浏览器窗口。
                                * 谁调用我 ,我关谁
                            open()    打开一个新的浏览器窗口
                                * 返回新的Window对象
                         3. 与定时器有关的方式
                            setTimeout()    在指定的毫秒数后调用函数或计算表达式。
                                * 参数:
                                    1. js代码或者方法对象
                                    2. 毫秒值
                                * 返回值:唯一标识,用于取消定时器
                            clearTimeout()    取消由 setTimeout() 方法设置的 timeout。
    
                            setInterval()    按照指定的周期(以毫秒计)来调用函数或计算表达式。
                            clearInterval()    取消由 setInterval() 设置的 timeout。
    
                    3. 属性:
                        1. 获取其他BOM对象:
                            history
                            location
                            Navigator
                            Screen:
                        2. 获取DOM对象
                            document
                    4. 特点
                        * Window对象不需要创建可以直接使用 window使用。 window.方法名();
                        * window引用可以省略。  方法名();
    
             */
    
            /*alert("hello window");
            window.alert("hello a")*/
            /*
             //确认框
             var flag = confirm("您确定要退出吗?");
    
             if(flag){
                 //退出操作
    
                 alert("欢迎再次光临!");
             }else{
                 //提示:手别抖...
                 alert("手别抖...");
             }*/
    
            /*
    
                   //输入框
                   var result =  prompt("请输入用户名");
                   alert(result);
            */
           /* //打开新窗口
            var openBtn = document.getElementById("openBtn");
            var newWindow;
            openBtn.onclick = function(){
                //打开新窗口
                newWindow = open("https://www.baidu.com");
            }
    
            //关闭新窗口
            var closeBtn = document.getElementById("closeBtn");
            closeBtn.onclick = function(){
               // 关闭新窗口
                newWindow.close();
            }*/
    
           //一次性定时器
           //setTimeout("fun();",2000);
            //var id = setTimeout(fun,2000);
            //clearTimeout(id);
           /* function fun(){
                alert('boom~~');
            }
    
            //循环定时器
            var id = setInterval(fun,2000);
            clearInterval(id);
    */
    
    
          /* //获取history
           var h1 =  window.history;
           var h2 = history;
    
           alert(h1);
           alert(h2);
    */
            var openBtn = window.document.getElementById("openBtn");
            alert(openBtn);
            /*document.getElementById("");*/
        </script>
    </body>
    </html>
    View Code
    Window:窗口对象
        1. 创建
        2. 方法
             1. 与弹出框有关的方法:
                alert()	显示带有一段消息和一个确认按钮的警告框。
                confirm()	显示带有一段消息以及确认按钮和取消按钮的对话框。
                    * 如果用户点击确定按钮,则方法返回true
                    * 如果用户点击取消按钮,则方法返回false
                prompt()	显示可提示用户输入的对话框。
                    * 返回值:获取用户输入的值
             2. 与打开关闭有关的方法:
                close()	关闭浏览器窗口。
                    * 谁调用我 ,我关谁
                open()	打开一个新的浏览器窗口
                    * 返回新的Window对象
             3. 与定时器有关的方式
                setTimeout()	在指定的毫秒数后调用函数或计算表达式。
                    * 参数:
                        1. js代码或者方法对象
                        2. 毫秒值
                    * 返回值:唯一标识,用于取消定时器
                clearTimeout()	取消由 setTimeout() 方法设置的 timeout。
    
                setInterval()	按照指定的周期(以毫秒计)来调用函数或计算表达式。
                clearInterval()	取消由 setInterval() 设置的 timeout。
    
        3. 属性:
            1. 获取其他BOM对象:
                history
                location
                Navigator
                Screen:
            2. 获取DOM对象
                document
        4. 特点
            * Window对象不需要创建可以直接使用 window使用。 window.方法名();
            * window引用可以省略。  方法名();
    

    JS实现轮播图:

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>轮播图</title>
    </head>
    <body>
        <img id="img" src="img/banner_1.jpg" width="100%">
        <script>
            /*
                分析:
                    1.在页面上使用img标签展示图片
                    2.定义一个方法,修改图片对象的src属性
                    3.定义一个定时器,每隔3秒调用方法一次。
             */
            //修改图片src属性
            var number = 1;
            function fun(){
                number ++ ;
                //判断number是否大于3
                if(number > 3){
                    number = 1;
                }
                //获取img对象
                var img = document.getElementById("img");
                img.src = "img/banner_"+number+".jpg";
            }
            //2.定义定时器
            setInterval(fun,3000);
        </script>
    </body>
    </html>
    View Code

    Location:地址栏对象
      1. 创建(获取):
        1. window.location
        2. location

      2. 方法:
        * reload() 重新加载当前文档。刷新
      3. 属性
        * href 设置或返回完整的 URL。

    代码:

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>location对象</title>
    </head>
    <body>
    <input type="button" id="btn" value="刷新">
    <input type="button" id="go_btn" value="去百度">
    <script>
        //reload方法,定义一个按钮,点击按钮,刷新当前页面
        var btn=document.getElementById("btn");
        btn.onclick=function (){
            location.reload();
        }
        var btn1=document.getElementById("go_btn");
        btn1.onclick=function () {
            location.href="https://www.baidu.com";
        }
    </script>
    </body>
    </html>
    View Code

    自动跳转页面

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>自动跳转</title>
        <style>
            p{
                text-align: center;
            }
            span{
                color:red;
            }
    
        </style>
    </head>
    <body>
        <p>
            <span id="time">5</span>秒之后,自动跳转到首页...
        </p>
        <script>
            /*
                分析:
                   1.显示页面效果  <p>
                   2.倒计时读秒效果实现
                       2.1 定义一个方法,获取span标签,修改span标签体内容,时间--
                       2.2 定义一个定时器,1秒执行一次该方法
                   3.在方法中判断时间如果<= 0 ,则跳转到首页
    
             */
           // 2.倒计时读秒效果实现
            var second = 5;
            var time = document.getElementById("time");
    
            //定义一个方法,获取span标签,修改span标签体内容,时间--
            function showTime(){
                second -- ;
                //判断时间如果<= 0 ,则跳转到首页
                if(second <= 0){
                    //跳转到首页
                    location.href = "https://www.baidu.com";
                }
    
                time.innerHTML = second +"";
            }
            //设置定时器,1秒执行一次该方法
            setInterval(showTime,1000);
        </script>
    </body>
    </html>
    View Code

    History:历史记录对象
      1. 创建(获取):
        1. window.history
        2. history

      2. 方法:
        * back() 加载 history 列表中的前一个 URL。
        * forward() 加载 history 列表中的下一个 URL。
        * go(参数) 加载 history 列表中的某个具体页面。
        * 参数:
          * 正数:前进几个历史记录
          * 负数:后退几个历史记录
      3. 属性:
        * length 返回当前窗口历史列表中的 URL 数量。

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>History对象</title>
    </head>
    <body>
    
        <input type="button" id="btn" value="获取历史记录个数">
        <a href="09_History对象2.html">09页面</a>
        <input type="button" id="forward" value="前进">
    <script>
        /*
            History:历史记录对象
                1. 创建(获取):
                    1. window.history
                    2. history
    
                2. 方法:
                    * back()    加载 history 列表中的前一个 URL。
                    * forward()    加载 history 列表中的下一个 URL。
                    * go(参数)        加载 history 列表中的某个具体页面。
                        * 参数:
                            * 正数:前进几个历史记录
                            * 负数:后退几个历史记录
                3. 属性:
                    * length    返回当前窗口历史列表中的 URL 数量。
    
    
         */
        //1.获取按钮
        var btn = document.getElementById("btn");
        //2.绑定单机事件
        btn.onclick = function(){
            //3.获取当前窗口历史记录个数
            var length = history.length;
            alert(length);
        }
    
    
        //1.获取按钮
        var forward = document.getElementById("forward");
        //2.绑定单机事件
        forward.onclick = function(){
           //前进
           // history.forward();
            history.go(1);
        }
    
    
    </script>
    
    </body>
    </html>
    View Code

    DOM:

    * 概念: Document Object Model 文档对象模型
      * 将标记语言文档的各个组成部分,封装为对象。可以使用这些对象,对标记语言文档进行CRUD的动态操作

    * W3C DOM 标准被分为 3 个不同的部分:

      * 核心 DOM - 针对任何结构化文档的标准模型
        * Document:文档对象
        * Element:元素对象
        * Attribute:属性对象
        * Text:文本对象
        * Comment:注释对象

        * Node:节点对象,其他5个的父对象
      * XML DOM - 针对 XML 文档的标准模型
      * HTML DOM - 针对 HTML 文档的标准模型

    * 核心DOM模型:
      * Document:文档对象
        1. 创建(获取):在html dom模型中可以使用window对象来获取
          1. window.document
          2. document
        2. 方法:
          1. 获取Element对象:
            1. getElementById() : 根据id属性值获取元素对象。id属性值一般唯一
            2. getElementsByTagName():根据元素名称获取元素对象们。返回值是一个数组
            3. getElementsByClassName():根据Class属性值获取元素对象们。返回值是一个数组
            4. getElementsByName(): 根据name属性值获取元素对象们。返回值是一个数组
        2. 创建其他DOM对象:
          createAttribute(name)
          createComment()
          createElement()
          createTextNode()
        3. 属性
    * Element:元素对象
      1. 获取/创建:通过document来获取和创建
      2. 方法:
        1. removeAttribute():删除属性
        2. setAttribute():设置属性
    * Node:节点对象,其他5个的父对象
      * 特点:所有dom对象都可以被认为是一个节点
      * 方法:
        * CRUD dom树:
          * appendChild():向节点的子节点列表的结尾添加新的子节点。
          * removeChild() :删除(并返回)当前节点的指定子节点。
          * replaceChild():用新节点替换一个子节点。
        * 属性:
          * parentNode 返回节点的父节点。

    * HTML DOM
        1. 标签体的设置和获取:innerHTML
        2. 使用html元素对象的属性
        3. 控制元素样式
          1. 使用元素的style属性来设置
          如:
            //修改样式方式1
              div1.style.border = "1px solid red";
              div1.style.width = "200px";
              //font-size--> fontSize
              div1.style.fontSize = "20px";
          2. 提前定义好类选择器的样式,通过元素的className属性来设置其class属性

    document对象

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Document对象</title>
        
    </head>
    <body>
    
    
        <div id="div1">div1</div>
        <div id="div2">div2</div>
    
        <div id="div3">div3</div>
    
        <div class="cls1">div4</div>
        <div class="cls1">div5</div>
    
        <input type="text" name="username">
    
    <script>
        /*
        Document:文档对象
            1. 创建(获取):在html dom模型中可以使用window对象来获取
                1. window.document
                2. document
            2. 方法:
                1. 获取Element对象:
                    1. getElementById()    : 根据id属性值获取元素对象。id属性值一般唯一
                    2. getElementsByTagName():根据元素名称获取元素对象们。返回值是一个数组
                    3. getElementsByClassName():根据Class属性值获取元素对象们。返回值是一个数组
                    4. getElementsByName(): 根据name属性值获取元素对象们。返回值是一个数组
                2. 创建其他DOM对象:
                    createAttribute(name)
                    createComment()
                    createElement()
                    createTextNode()
            3. 属性
    
    
    
         */
    
        //2.根据元素名称获取元素对象们。返回值是一个数组
        var divs = document.getElementsByTagName("div");
        //alert(divs.length);
        //3.根据Class属性值获取元素对象们。返回值是一个数组
        var div_cls = document.getElementsByClassName("cls1");
       // alert(div_cls.length);
        //4.根据name属性值获取元素对象们。返回值是一个数组
        var ele_username = document.getElementsByName("username");
        //alert(ele_username.length);
    
        var table = document.createElement("table");
        alert(table);
    
    
    </script>
    </body>
    </html>
    View Code

    Element对象

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Element对象</title>
    </head>
    <body>
        <a>点我试一试</a>
        <input type="button" id="btn_set" value="设置属性">
        <input type="button" id="btn_remove" value="删除属性">
    
    <script>
        //获取btn
        var btn_set =document.getElementById("btn_set");
        btn_set.onclick = function(){
            //1.获取a标签
            var element_a = document.getElementsByTagName("a")[0];
            element_a.setAttribute("href","https://www.baidu.com");
        }
    
    
        //获取btn
        var btn_remove =document.getElementById("btn_remove");
        btn_remove.onclick = function(){
            //1.获取a标签
            var element_a = document.getElementsByTagName("a")[0];
            element_a.removeAttribute("href");
        }
    
    
        
    </script>
    </body>
    </html>
    View Code
    一纸高中万里风,寒窗读破华堂空。 莫道长安花看尽,由来枝叶几相同?
  • 相关阅读:
    c#中value是什么意思
    javascript json转为 go struct 小工具代码
    android greendao的外部封装不太友好。
    redis 内存泄露
    Robolectric 配置
    android studio 代理配置
    python 写文件,utf-8问题
    go 的 time ticker 设置定时器
    FQ记(nexus7 2代 恢复出厂设置,然后重启,因为被墙,卡住了!)
    lua https request 调用
  • 原文地址:https://www.cnblogs.com/byczyz/p/14387112.html
Copyright © 2011-2022 走看看