zoukankan      html  css  js  c++  java
  • DOM – 4.doucument属性

    4.document属性

    2.1 write

    2.2 getElementById 方法

    getElementsByName

    getElementsByTagName

    案例:全选反选

    案例:点击一个按钮,被点击的按钮显示“呜呜”,其他按钮显示“哈哈”。

    案例:十秒钟后协议文本框下的注册按钮才能点击,时钟倒数。 (btn.disabled = true )

    练习:加法计算器。两个文本框中输入数字,点击【=】按钮将相加的结果放到第三个文本框中。

    练习:图片浏览器。

    4.document属性

    1. document是window对象的一个属性,因为使用window对象成员的时候可以省略window.,所以一般直接写document

    2. document的方法:

    2.1 write:向文档中写入内容。writeln,和write差不多,只不过最后添加一个回车

    <input type="button" value="点击" onclick="document.write('<font color=red>你好</font>')" />
    在onclick等事件中写的代码会冲掉页面中的内容,只有在页面加载过程中write才会与原有内容融合在一起
        <script type="text/javascript">
            document.write('<font color=red>你好</font>');
        </script>

    image
    write经常在广告代码、整合资源代码中被使用。见备注

    内容联盟、广告代码、cnzz,不需要被主页面的站长去维护内容,只要被嵌入的js内容提供商修改内容,显示的内容就变了。

     

    2.2 getElementById 方法(非常常用),根据元素的Id获得对象,网页中id不能重复。也可以直接通过元素的id来引用元素,但是有有效范围、form1.textbox1之类的问题,因此不建议直接通过id操作元素,而是通过getElementById
    (*)getElementsByName,根据元素的name获得对象,由于页面中元素的name可以重复,比如多个 RadioButton 的name一样,因此getElementsByName返回值是对象数组。

    <!DOCTYPE html>
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <title></title>
        <script type="text/javascript">
    
            //radio单选(集合)
            f1 = function () {
                var radios = document.getElementsByName("sex");
    
                for (var i = 0; i < radios.length; i++) {
                    if (radios[i].checked) {
                        alert(radios[i].value);
    
                        break;
                    }
                }
            }
    
            //checkbox多选
            function f2() {
                var s = "";
                var checkboxs = document.getElementsByName("number");
    
                for (var i = 0; i < checkboxs.length; i++) {
                    if (checkboxs[i].checked) {
                        s
    += checkboxs[i].value + ";"
    ;
                    }
                }
                alert(s);
            }
        </script>
    </head>
    <body>
        <input type="radio" value="man" checked="checked" name="sex" /><input type="radio" value="woman" name="sex" /><input type="radio" value="yao??" name="sex" />人妖?
    
        <input type="button" onclick="f1()" value="click" />
        <br />
        <div>
            <input type="checkbox" name="number" checked="checked" value="1" />1
            <input type="checkbox" name="number" value="2" />2
            <input type="checkbox" name="number" value="3" />3
       
             <input type="button" onclick="f2()" value="click" />
        </div>
    </body>
    </html>

    imageimage 

    (*)getElementsByTagName,获得指定标签名称的元素数组,比如getElementsByTagName("p")可以获得所有的<p>标签。

    <!DOCTYPE html>
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <title></title>
        <script type="text/javascript">
            //全选
            function Allchecked() {
                //触发事件的对象 全选的checkbox
                var obb = event.srcElement;
                //获取所有的input标签
                var inputs = document.getElementsByTagName("input");
                for (var i = 0; i < inputs.length; i++) {
                    //判断当前的input对象是不是checkbox
                    if (inputs[i].type == "checkbox") {
                        inputs[i].checked = obb.checked;
                    }
                }
            }
    
            //取消全选
            function oneChecked() {
                //获取所有的input标签
                var inputs = document.getElementsByTagName("input");
                //全选框
    
                for (var i = 0; i < inputs.length; i++) {
                    //判断当前的input对象是不是checkbox
                    if (inputs[i].type == "checkbox") {
                        //判断当前的input对象不是全选时
                        if (inputs[i].id != document.getElementById('chkAll')) {
                            //假设所有checkbox被选中
                            var ischeckAll = true;
                            //再循环一次
                            for (var j = 0; j < inputs.length; j++) {
                                if (inputs[j].type == "checkbox" && inputs[j].id != "chkAll") {
                                    //判断是否被选中
                                    if (!inputs[j].checked) {
                                        ischeckAll = false;
                                        break;
                                    }
                                }
                            }
                            //
                            document.getElementById('chkAll').checked = ischeckAll;
                        }
                    }
                }
            }
    
        </script>
    </head>
    <body>
        <div>
            <input type="checkbox" id="chkAll" value="全选" onclick="Allchecked()" />全选
            <br />
            <input type="checkbox" value="A" onclick="oneChecked()" />吃饭
            <br />
            <input type="checkbox" value="B" onclick="oneChecked()" />睡觉
            <br />
            <input type="checkbox" value="C" onclick="oneChecked()" />玩电脑
            <br />
            <input type="button" onclick="reverseChecked()" value="反选" />
        </div>
    </body>
    </html>

    image

    image

    案例:全选反选(完整代码)

    显示行号 复制代码 这是一段程序代码。
    1. <!DOCTYPE html>
      
    2. <html xmlns="http://www.w3.org/1999/xhtml">
      
    3. <head>
      
    4.     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
      
    5.     <title></title>
      
    6.     <script type="text/javascript">
      
    7.         //1.全选
      
    8.         function Allchecked() {
      
    9.             //触发事件的对象 全选的checkbox
      
    10.             var obb = event.srcElement;
      
    11.             //获取所有的input标签
      
    12.             var inputs = document.getElementsByTagName("input");
      
    13.             for (var i = 0; i < inputs.length; i++) {
      
    14.                 //判断当前的input对象是不是checkbox
      
    15.                 if (inputs[i].type == "checkbox") {
      
    16.                     inputs[i].checked = obb.checked;
      
    17.                 }
      
    18.             }
      
    19.         }
      
    20.         //2.取消全选
      
    21.         function oneChecked() {
      
    22.             //获取所有的input标签
      
    23.             var inputs = document.getElementsByTagName("input");
      
    24.             //全选框
      
    25.             for (var i = 0; i < inputs.length; i++) {
      
    26.                 //判断当前的input对象是不是checkbox
      
    27.                 if (inputs[i].type == "checkbox") {
      
    28.                     //判断当前的input对象不是全选时
      
    29.                     if (inputs[i].id != document.getElementById('chkAll')) {
      
    30.                         //假设所有checkbox被选中
      
    31.                         single();
      
    32.                     }
      
    33.                 }
      
    34.             }
      
    35.         }
      
    36.         //3.反选
      
    37.         function reverseChecked() {
      
    38.             //获取所有的input标签
      
    39.             var inputs = document.getElementsByTagName("input");
      
    40.             for (var i = 0; i < inputs.length; i++) {
      
    41.                 //判断当前的input对象是不是checkbox
      
    42.                 if (inputs[i].type == "checkbox") {
      
    43.                     //1.判断当前的input对象不是全选时
      
    44.                     if (inputs[i].id != document.getElementById('chkAll')) {
      
    45.                         //取反
      
    46.                         inputs[i].checked = !inputs[i].checked;
      
    47.                     }
      
    48.                 }
      
    49.             }
      
    50.             single();
      
    51.         }
      
    52.         //4.判断所有子checkbox是否被选中
      
    53.         function single() {
      
    54.             var inputs = document.getElementsByTagName("input");
      
    55.             var ischeckAll = true;
      
    56.             //再循环一次
      
    57.             for (var j = 0; j < inputs.length; j++) {
      
    58.                 if (inputs[j].type == "checkbox" && inputs[j].id != "chkAll") {
      
    59.                     //判断是否被选中
      
    60.                     if (!inputs[j].checked) {
      
    61.                         ischeckAll = false;
      
    62.                         break;
      
    63.                     }
      
    64.                 }
      
    65.             }
      
    66.             document.getElementById('chkAll').checked = ischeckAll;
      
    67.         }
      
    68. </script>
      
    69. </head>
      
    70. <body>
      
    71.     <div>
      
    72.         <input type="checkbox" id="chkAll" value="全选" onclick="Allchecked()" />全选
      
    73. <br />
      
    74.         <input type="checkbox" value="A" onclick="oneChecked()" />吃饭
      
    75. <br />
      
    76.         <input type="checkbox" value="B" onclick="oneChecked()" />睡觉
      
    77. <br />
      
    78.         <input type="checkbox" value="C" onclick="oneChecked()" />玩电脑
      
    79. <br />
      
    80.         <input type="button" onclick="reverseChecked()" value="反选" />
      
    81.     </div>
      
    82. </body>
      
    83. </html>
      


    案例:点击一个按钮,被点击的按钮显示“呜呜”,其他按钮显示“哈哈”。

    显示行号 复制代码 这是一段程序代码。
    1. <!DOCTYPE html>
      
    2. <html xmlns="http://www.w3.org/1999/xhtml">
      
    3. <head>
      
    4.     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
      
    5.     <title></title>
      
    6.     <script type="text/javascript">
      
    7.         window.onload = function () {
      
    8.             var haha = document.getElementsByTagName("input");
      
    9.             for (var i = 0; i < haha.length; i++) {
      
    10.                 if (haha[i].type == "button") {
      
    11.                     //注册onclick事件
      
    12.                     haha[i].onclick = function () {
      
    13.                         //alert(i);   //i的值等于7,因为onload加载完i值等于最后的6,然后再循环1次
      
    14.                         for (var i = 0; i < haha.length; i++) {
      
    15.                             if (haha[i].type == "button") {
      
    16.                                 haha[i].value = "哈哈";
      
    17.                             }
      
    18.                         }
      
    19.                         //触发事件的对象
      
    20.                         event.srcElement.value = "呜呜";
      
    21.                     }
      
    22.                 }
      
    23.             }
      
    24.         };
      
    25. </script>
      
    26. </head>
      
    27. <body>
      
    28.     <div>
      
    29.         <input type="button" value="哈哈" name="haha" /><br />
      
    30.         <input type="button" value="哈哈" name="haha" /><br />
      
    31.         <input type="button" value="哈哈" name="haha" /><br />
      
    32.         <input type="button" value="哈哈" name="haha" /><br />
      
    33.         <input type="button" value="哈哈" name="haha" /><br />
      
    34.         <input type="button" value="哈哈" name="haha" /><br />
      
    35.         <input type="button" value="哈哈" name="haha" /><br />
      
    36.     </div>
      
    37. </body>
      
    38. </html>
      

    image

    案例:十秒钟后协议文本框下的注册按钮才能点击,时钟倒数。
    (btn.disabled = true )

    隐藏行号 复制代码 这是一段程序代码。
    1. <!DOCTYPE html>
    2. <html xmlns="http://www.w3.org/1999/xhtml">
    3. <head>
    4.     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    5.     <title></title>
    6.     <script type="text/javascript">
    7.         var count = 10;
    8.         //设置计数器
    9.         var tmrId = setInterval("test()", 1000);
    10.         function test() {
    11.         var btn = document.getElementById("btn");
    12.         if (count > 0) {
    13.                 aa = Date();
    14.                 btn.value = "请仔细阅读(" + count + ")秒";
    15.                 count--;
    16.             } else {
    17.                 btn.value = "同意";
    18.                 btn.disabled = false;
    19.                 clearInterval(tmrId);
    20.             }
    21.         }
    22. </script>
    23. </head>
    24. <body>
    25.     <div>
    26.         <input id="btn" type="button" value="设置" disabled="disabled" />
    27.     </div>
    28. </body>
    29. </html>

    倒计时中 --- 》  image


    练习:加法计算器。两个文本框中输入数字,点击【=】按钮将相加的结果放到第三个文本框中。

    练习:图片浏览器。

    imageimage 

    显示行号 复制代码 这是一段程序代码。
    1. <!DOCTYPE html>
      
    2. <html xmlns="http://www.w3.org/1999/xhtml">
      
    3. <head>
      
    4.     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
      
    5.     <title></title>
      
    6.     <script type="text/javascript">
      
    7.         window.onload = function () {
      
    8.             var ul = document.getElementById("meinv");
      
    9.             //获取ul中的a标签
      
    10.             var nv = ul.getElementsByTagName("a");
      
    11.             for (var i = 0; i < nv.length; i++) {
      
    12.                 //为ul下的a标签注册onclick事件
      
    13.                 nv[i].onclick = function () {
      
    14.                     var img = document.getElementById("i1");
      
    15.                     //img的地址等于当前点击a标签地址
      
    16.                     img.src = event.srcElement.href;
      
    17.                     //防止跳转
      
    18.                     return false;
      
    19.                 }
      
    20.             }
      
    21.         }
      
    22. </script>
      
    23. </head>
      
    24. <body>
      
    25.     <ul id="meinv">
      
    26.         <li><a href="image/1.jpg">美女1</a></li>
      
    27.         <li><a href="image/2.jpg">美女2</a></li>
      
    28.         <li><a href="image/3.jpg">美女3</a></li>
      
    29.         <li><a href="image/4.jpg">美女4</a></li>
      
    30.     </ul>
      
    31.     <br />
      
    32.     <img id="i1" src="image/1.jpg" />
      
    33. </body>
      
    34. </html>
      
  • 相关阅读:
    【ZJOI2007】棋盘制作 BZOJ1057
    【ZJOI2008】 树的统计 count
    【JSOI2007】麻将 bzoj 1028
    【省选】省选黄色预警
    【ZJOI2013】k大数查询 BZOJ 3110
    【HNOI2008】Cards BZOJ 1004
    【JSOI2010】Group 部落划分 BZOJ 1821
    NOIp2014 解题报告
    CH Round #56
    CH Round #55
  • 原文地址:https://www.cnblogs.com/tangge/p/3147154.html
Copyright © 2011-2022 走看看