zoukankan      html  css  js  c++  java
  • JSAP101

    JSAP101

    1、DOM
    1)文档对象模型
    这里写图片描述
    这里写图片描述
    文档:把一个Html文件看成一个文档,所以把这个文档看成一个对象。XML文件也可以看成一个文件。XML侧重于存储数据,html主要以展示为主。一个页面就是一个文档。
    页面中的每个标签,都是一个元素,每个元素都可以看成是1个对象。
    页面中所有的内容都是节点:标签,属性,文本 。html是文档的根元素。由文档及文档中所有的元素(标签)组成的一个树形结构图脚树状图(DOM树)
    DOM是用来操作页面元素的。
    2)DOM初体验

    <input type="button" value="弹窗" onclick="alert('hello!')"/><!--注意用单引号-->

    3、为元素注册事件
    1)事件:以on开头
    js代码应该和html代码分离

    function f1(){
    ...
    }
    //可以通过事件调用函数
    <input type="button" value="显示效果" onclick="f()"/>
    
    //分离js与html,利用id
    <input type="button" value="点击" id="btn"/>
    <script>
    function f(){
    alert("分离");
    }
    //document.getElementById("ids属性名");返回的是一个元素对象
    var btnObj=document.getElementById("btn");
    //相当于为按钮注册了(点击)事件
    btnObj.onclick=f;//不必加括号
    </script>

    最终的代码,不再在script外定义函数(以下代码均在body标签内):
    这里写图片描述
    使用匿名函数
    若把input和script标签互换位置,则会报错,因为此时还没有btn这个id的值

    //案例:点击按钮显示图片和设置宽高
    <body>
    <input type="button" value="显示图片" id="btn"/>
    <img src="" id="im"/>
    <script>
    //点击按钮时设置img标签的src属性
    //获取按钮
      var btnObj=document.getElementById("btn");
      btnObj.onclick=function () {
          var imObj=document.getElementById("im");
          imObj.src="timg.jpg";
          //设置图片大小
          imObj.width=300;
          imObj.height=400;
      };
    </script>
    </body>
    //案例:点击按钮设置p标签的文本内容
    <body>
    <input type="button" value="设置p的内容" id="btn"/>
    <p id="p1">这是p标签</p>
    <script>
    document.getElementById("btn").onclick=function () {
        document.getElementById("p1").innerText="我是一个p标签";
    }
    //案例:点击按钮修改超链接的地址及文本内容
    <body>
    <input type="button" value="设置p的内容" id="btn"/>
    <p id="p1">这是p标签</p>
    <script>
    document.getElementById("btn").onclick=function () {
        document.getElementById("p1").innerText="我是一个p标签";
    }
    </body>
    //案例点击按钮设置所有P标签的内容
    <body>
    <input type="button" value="显示效果" id="btn"/>
    <p>she is young.</p>
    <p>she is young.</p>
    <p>she is young.</p>
    <p>she is young.</p>
    <p>she is young.</p>
    <script>
    document.getElementById("btn").onclick=function(){
        //根据标签名字获取标签
        var pOBJ=document.getElementsByTagName("p");
        console.log(pOBJ);//是一个伪数组
        //循环遍历这个伪数组
        for(var i=0;i<pOBJ.length;i++){
            pOBJ[i].innerText="no way!"; }
    
    
    }
    </script>
    </body>
    //案例:点击按钮修改图片的alt与title属性
    <body>
    <input type="button" value="显示效果" id="btn"/>
    <img src="timg.jpg" alt="cc" title="dd"/>
    <script>
    document.getElementById("btn").onclick=function(){
        //返回的是一个伪数组
        var imgObjs=document.getElementsByTagName("img");
        imgObjs[0].alt="修改";
        imgObjs[0].title="完成";
    }
    </script>
    //案例:点击按钮修改多个文本的值
    <body>
    <input type="button" value="修改文本框" id="btn"/><br/>
    <input type="text" value=""/><br/>
    <input type="text" value=""/><br/>
    <input type="text" value=""/><br/>
    <input type="text" value=""/><br/>
    <input type="text" value=""/><br/>
    <script>
    //根据id获取按钮
    //为按钮注册点击事件,添加事件处理函数
        document.getElementById("btn").onclick=function () {
            //获取所有的文本框
           var inputs=document.getElementsByTagName("input");
            for(var i=0;i<inputs.length;i++){
                //判断这个元素是不是按钮
                if(inputs[i].type!="button") {
                    inputs[i].value="你好";
                }
    
            }
    
    
        }
    </script>
    </body>
    //案例:点击每个图片弹出对话框
    <body>
    <img src="u=2124789894,3346559232&fm=11&gp=0.jpg" alt="" id="im1"/>
    <img src="u=2124789894,3346559232&fm=11&gp=0.jpg" alt=""id="im2"/>
    <img src="u=2124789894,3346559232&fm=11&gp=0.jpg" alt="" id="im3"/>
    <script>
    var imgObjs=document.getElementsByTagName("img");
    //循环遍历
    for(var i=0;i<imgObjs.length;i++){
        imgObjs[i].onclick=function () {
            alert("延禧攻略");
        }
    
    }
    </script>
    
    </body>
    //点击按钮修改其value属性
    <body>
    <input type="button" value="按钮" id="btn"/>
    <script>
        var btnObj=document.getElementById("btn");
        btnObj.onclick=function () {
            btnObj.value="你好";
        }
    </script>
    
    </body>
    案例:点击图片修改其宽高
    <body>
    <img src="timg.jpg" alt="" id="im"/>
    <script>
        var imgObj=document.getElementById("im");
        imgObj.onclick=function () {
            this.width="200";
            this.height="700";
        }
    </script>
    
    </body>
    案例:按钮的排他功能
    <body>
    <input type="button" value="吃了吗"/>
    <input type="button" value="吃了吗"/>
    <input type="button" value="吃了吗"/>
    <input type="button" value="吃了吗"/>
    <input type="button" value="吃了吗"/>
    <script>
    //获取所有的按钮
        var btnObjs=document.getElementsByTagName("input");
        for(var i=0;i<btnObjs.length;i++){
            btnObjs[i].onclick=function () {
                for(var j=0;j<btnObjs.length;j++){
                    btnObjs[j].value="吃了吗";
                }
                this.value="还没有";
    
            }
        }
    </script>
    
    </body>

    //for循环在加载页面时就已经完成,而点击事件只在点击时才触发执行。因此上面的this.value不能写成btnObjs[i],因为此时已经循环注册完事件,i=btnObjs.length

    //点击图片修改路径
    <body>
    <a id="ak" href="u=2124789894,3346559232&fm=11&gp=0.jpg"><img id="im" src="timg.jpg"/></a>
    <script>
    document.getElementById("im").onclick=function () {
        this.src=document.getElementById("ak").href;
    }
    </script>
    
    </body>
    //点击按钮切换图片
    <body>
    <input type="button" value="显示大图" id="btn"/>
    <img src="u=2124789894,3346559232&fm=11&gp=0.jpg" id="im">
    <script>
        //通过函数获取对象
    function my$(id) {
    return document.getElementById(id);
    }
    my$("btn").onclick=function () {
        my$("im").src="timg.jpg";
    };
    </script>
    
    </body>
    //点击按钮选择性别和兴趣
    
    //修改兴趣
    <body>
    <input type="button" value="修改性别" id="btn1"/>
    <input type="radio" name="sex" value="1" id="rad1"/>male
    <input type="radio" name="sex" value="2"/>female
    <input type="radio" name="sex" value="3"/>secret
    
    <script>
        function my$(id) {
            return document.getElementById(id);
        }
        //规律:在表单标签中,如果属性和值只有一个,并且是这个属性本身,那么
        //在写js代码时,进行DOM操作的时候,这个属性值,是布尔类型就可以了
        my$("btn1").onclick=function(){
            my$("rad1").checked=true;//不用checked,只用false,true
        };
    
    </script>
    <br />
    <input type="button" value="修改兴趣" id="btn2">
    <input type="checkbox" value="1" name="hobby" id="ck1"/>游戏
    <input type="checkbox" value="2" name="hobby"/>睡眠
    <script>
        my$("btn2").onclick=function () {
            my$("ck1").checked=true;
        }
    </script>
    </body>
    案例选择下拉框和文本域的相关属性
    <body>
    <input type="button" value="点菜" id="btn"/>
    <select>
        <option value="1">炸鸡蛋</option>
        <option value="2">龙虾饭</option>
        <option value="3" id="op1">凉拌鸡肉</option>
        <option value="4">西式炖菜</option>
    </select>
    <!--<script src="xx.js"></script>可引用js文件-->
    <script>
        function my$(id) {
            return document.getElementById(id);
        }
    
        my$("btn").onclick=function () {
            //点击按钮选择菜
            my$("op1").selected=true;
        };
    </script>
    
    <textarea name="" id="tt" cols="30" rows="10" readonly="readonly">
        今天半价吃寿司。有鸭胸芝士,鳗鱼蒸饭。
    </textarea>
    <input type="button" value="注册" id="btn2">
    <script>
    //disabled--这个属性是禁用的意思
    //html中属性和值是自身的,且只有一个的,可以只写这个属性,不用赋值
    my$("btn2").onclick=function () {
        my$("tt").value="太美味了,下次尝尝炸鸡饭";
    }
    
    </script>
    </body>
    案例:点击按钮设置div样式
    <body>
    <input type="button" value="设置样式" id="btn"/>
    <div id="dv"></div>
    <script>
        //凡是css属性中多个单词的写法,在js代码中
        //DOM操作时,有分号的属性不用写分号,改为首字母大写
    function my$(id) {
        return document.getElementById("id")
    }
    my$("btn").onclick=function () {
        my$("dv").style.width="300px";
        my$("dv").style.width="200px";
        my$("dv").style.backgroundColor="red";
    };
    </script>
    </body>
    //案例:点击按钮显示和隐藏
    <input type="button" value="hide" id="btn"/>
    <input type="button" value="display" id="btn2"/>
    <div id="dv">
    </div>
    <script>
        function my$(id) {
            return document.getElementById(id)
        }
    
        my$("btn").onclick = function () {
            my$("dv").style.display = "none";
        }
        my$("btn2").onclick = function () {
            my$("dv").style.display = "block";
        }
    </script>
    div的显示和隐藏通过类样式实现
    <body>
    <input type="button" value="设置样式" id="btn"/>
    <div id="dv">
    </div>
    <script>
        function my$(id) {
            return document.getElementById(id)
        }
        my$("btn").onclick=function () {
            //在js代码中DOM操作时,设置元素的类样式,不用class
            //关键字,应该使用className
            my$("dv").className="cls";
        }
    </script>
    </body>
    //案例:网页开关灯
    <head>
        <meta charset="UTF-8">
        <title>abc</title>
        <style>
            .cls {
                background-color: black;
            }
        </style>
    </head>
    <body>
    <input id="btn" type="button" value="light">
    <script>
        function my$(id) {
            return document.getElementById(id)
        }
    
        my$("btn").onclick = function () {//获取body标签
            document.body.className = document.body.className != "cls" ? "cls" : "";
        };
    </script>
    </body>
    </html>
  • 相关阅读:
    代理模式
    装饰模式
    策略模式
    简单工厂模式
    linux下进程相关操作
    散列表(哈希表)
    转载:最小生成树-Prim算法和Kruskal算法
    二叉排序树和平衡二叉树
    堆排序
    快速排序
  • 原文地址:https://www.cnblogs.com/Tanqurey/p/10485295.html
Copyright © 2011-2022 走看看