zoukankan      html  css  js  c++  java
  • JavaScript的DOM编程--08--复习

      1 <html>
      2     <head>
      3         <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
      4         <title>Untitled Document</title>
      5         
      6         <script type="text/javascript">
      7             //1. 节点的类型: 元素节点、属性节点、文本节点
      8             //通常情况下, 操作属性节点直接通过 "元素节点.属性名" 的方式来读写属性值
      9             //而不是获取属性节点. 
     10             
     11             //2. 写 JS 代码的位置
     12             //2.1 具体位置在哪
     13             //2.2 window.onload 事件被触发的时间, 
     14             //以及如何为该事件赋值一个相应函数
     15             
     16             //3. 获取获取元素节点
     17             //3.1 根据 id 获取
     18             //3.2 根据 标签名 获取: 该方法并非 document 对象所独有, 任何元素节点
     19             //都可以调用该方法, 以获取指定的子节点. 
     20             //3.3 根据 name 属性名来获取: 若 HTML 元素本身没有 name 属性, 
     21             //我们硬添加一个 name 属性, 使用 getElementsByName(name)
     22             //对于 ie 是不好用的。 
     23             
     24             //4. 获取子节点
     25             //4.1 childNodes 属性: 获取指定元素的所有子节点, 但不怎么常用.
     26             //4.2 firstChild、lastChild 属性: 获取元素节点的文本节点(如果一个元素
     27             //        节点只有一个文本子节点). 
     28             //4.3 使用元素节点的 getElementsByTagName("方法");
     29             
     30             //5. 读写文本节点:
     31             //5.1 文本节点一定是元素节点的子节点
     32             //5.2 步骤: 获取文本节点所在的元素节点 -> 利用 firstChild 获取文本节点
     33             // -> 利用节点的 nodeValue 属性来读写文本值. 
     34             
     35             //6. 节点的属性: 所有节点都有的属性(按元素节点, 属性节点, 文本节点来说明)
     36             //6.1 nodeType: 1, 2, 3 只读属性
     37             //6.2 nodeName: 返回对应的节点的名字 只读属性
     38             //6.3 nodeValue: null, 属性值, 文本值 可读写的属性. 
     39             
     40             //7. 属性节点: 
     41             //7.1 一般情况下不单独获取属性节点, 
     42             //而是通过 元素节点.属性名 的方式来读写属性值    
     43                 
     44             window.onload = function(){
     45                 //弹出对话框. 
     46                 //alert("helloworld");
     47                 
     48                 //var bjNode = document.getElementById("bj");
     49                 //alert(bjNode);
     50                 
     51                 //var liNodes = document.getElementsByTagName("li");
     52                 //alert(liNodes.length);
     53                 
     54                 //var genderNodes = document.getElementsByName("gender");
     55                 //alert(genderNodes.length);
     56                 
     57                 //var bjNodes = document.getElementsByName("BeiJing");
     58                 //alert(bjNodes.length);
     59                 
     60 //                var cityNode = document.getElementById("city");
     61                 //var cityLiNodes = cityNode.getElementsByTagName("li");
     62                 //alert(cityLiNodes.length); 
     63                 
     64 //                var liChildren = cityNode.childNodes;
     65 //                alert(liChildren.length);
     66 //                
     67 //                var cityFirstChild = cityNode.firstChild;
     68 //                alert(cityFirstChild);
     69                 
     70                 var bjNode = document.getElementById("bj");
     71                 alert(bjNode.firstChild.nodeValue);
     72                 bjNode.firstChild.nodeValue = "尚硅谷";
     73                 
     74 //                var nameNode = document.getElementsByName("username")[0];
     75 //                alert(nameNode.value);
     76 //                nameNode.value = "尚硅谷";
     77             }
     78         
     79         </script>
     80         
     81     </head>
     82     <body>
     83         <p>你喜欢哪个城市?</p>
     84         <ul id="city">
     85         <li id="bj" name="BeiJing">北京</li>
     86             <li>上海</li>
     87             <li>东京</li>
     88             <li>首尔</li>
     89         </ul>
     90         
     91         <br><br>
     92         <p>你喜欢哪款单机游戏?</p>
     93         <ul id="game">
     94             <li id="rl">红警</li>
     95             <li>实况</li>
     96             <li>极品飞车</li>
     97             <li>魔兽</li>
     98         </ul>
     99         
    100         <br><br>
    101         gender: 
    102             <input type="radio" name="gender" value="male"/>Male
    103             <input type="radio" name="gender" value="female"/>Female
    104     
    105         <br><br>
    106         name: <input type="text" name="username" value="atguigu"/>
    107         
    108     </body>
    109 </html>    
      1 <html>
      2 <head>
      3 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
      4 <title>Insert title here</title>
      5     <script type="text/javascript">
      6         
      7         //需求: 点击 submit 按钮时, 检查是否选择 type, 若没有选择给出提示: "请选择类型"; 
      8         //     检查文本框中是否有输入(可以去除前后空格), 若没有输入,则给出提示: "请输入内容";
      9         //若检查都通过, 则在相应的 ul 节点中添加对应的 li 节点 
     10     
     11         //需求2: 使包括新增的 li 都能响应 onclick 事件: 弹出 li 的文本值. 
     12         
     13         window.onload = function(){
     14             
     15             function showContent(liNode){
     16                 alert("^_^#" + liNode.firstChild.nodeValue);
     17             }
     18             
     19             var liNodes = document.getElementsByTagName("li");
     20             for(var i = 0; i < liNodes.length; i++){
     21                 liNodes[i].onclick = function(){
     22                     showContent(this);
     23                 }
     24             }
     25             
     26             //1. 获取 #submit 对应的按钮 submitBtn
     27             var submit = document.getElementById("submit");
     28             
     29             //2. 为 submitBtn 添加 onclick 响应函数
     30             submit.onclick = function(){
     31                 
     32                 //4. 检查是否选择 type, 若没有选择给出提示: "请选择类型"
     33                 //4.1 选择所有的 name="type" 的节点 types
     34                 var types = document.getElementsByName("type");
     35                 
     36                 //4.2 遍历 types, 检查其是否有一个 type 的 checked 属性存在, 就可说明
     37                 //有一个 type 被选中了: 通过  if(元素节点.属性名) 来判断某一个元素节点是否有
     38                 //该属性.
     39                 var typeVal = null;
     40                 for(var i = 0; i < types.length; i++){
     41                     if(types[i].checked){
     42                         typeVal = types[i].value;
     43                         break;
     44                     }
     45                 }
     46                 
     47                 //4.3 若没有任何一个 type 被选中, 则弹出: "请选择类型". 响应方法结束: 
     48                 //return false
     49                 if(typeVal == null){
     50                     alert("请选择类型");
     51                     return false;
     52                 }
     53                 
     54                 //5. 获取 name="name" 的文本值: 通过 value 属性: nameVal 
     55                 var nameEle = document.getElementsByName("name")[0];
     56                 var nameVal = nameEle.value;
     57                 
     58                 //6. 去除 nameVal 的前后空格. 
     59                 var reg = /^s*|s*$/g;
     60                 nameVal = nameVal.replace(reg, "");
     61                 
     62                 //使 name 的文本框也去除前后空格. 
     63                 nameEle.value = nameVal;
     64                 
     65                 //6. 把 nameVal 和 "" 进行比较, 若是 "" 说明只出入了空格, 弹出 "请输入内容"
     66                 //方法结束: return false
     67                 if(nameVal == ""){
     68                     alert("请输入内容");
     69                     return false;
     70                 }
     71                 
     72                 //7. 创建 li 节点
     73                 var liNode = document.createElement("li");
     74                 
     75                 //8. 利用 nameVal 创建文本节点
     76                 var content = document.createTextNode(nameVal);
     77                 
     78                 //9. 把 8 加为 7 的子节点
     79                 liNode.appendChild(content);
     80                 
     81                 //11. 为新创建的 li 添加 onclick 响应函数
     82                 liNode.onclick = function(){
     83                     showContent(this);
     84                 }
     85                 
     86                 //10. 把 7 加为选择的 type 对应的 ul 的子节点
     87                 document.getElementById(typeVal)
     88                         .appendChild(liNode);
     89                 
     90                 //3. 在 onclick 响应函数的结尾处添加 return false, 就可以取消提交按钮的
     91                 //默认行为. 
     92                 return false;
     93             }
     94         }
     95     
     96     </script>
     97 </head>
     98 <body>
     99 
    100     <p>你喜欢哪个城市?</p>
    101     
    102         <ul id="city">
    103             <li id="bj">北京</li>
    104             <li>上海</li>
    105             <li>东京</li>
    106             <li>首尔</li>
    107         </ul>
    108         
    109         <br><br>
    110         <p>你喜欢哪款单机游戏?</p>
    111         <ul id="game">
    112             <li id="rl">红警</li>
    113             <li>实况</li>
    114             <li>极品飞车</li>
    115             <li>魔兽</li>
    116         </ul>
    117         
    118         <br><br>
    119         
    120         <form action="dom-7.html" name="myform">
    121             
    122             <input type="radio" name="type" value="city">城市
    123             <input type="radio" name="type" value="game">游戏
    124         
    125             name: <input type="text" name="name"/>
    126         
    127             <input type="submit" value="Submit" id="submit"/>
    128             
    129         </form>
    130 
    131 
    132 </body>
    133 </html>
  • 相关阅读:
    nowcoder 2020/6/20 J-小梁的背包
    nowcoder 2020/6/20 G-遗迹逃亡
    nowcoder 2020/6/20 C-杰尼杰尼
    nowcoder 2020/6/20
    我罗斯方块最终篇
    函数模板-集合模拟
    CF w4d3 B. Calendar
    绩效成绩(2)
    最需要改进三个的问题
    项目会议总结
  • 原文地址:https://www.cnblogs.com/nifengs/p/4834632.html
Copyright © 2011-2022 走看看