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>
原文地址:https://www.cnblogs.com/nifengs/p/4834632.html