创建并新增元素节点和文本节点

一:知识点的介绍与实验

1.创建一个元素节点

  方式是createElement()。

 

2.创建元素节点的程序

 1 <!DOCTYPE html>
 2 <html>
 3 <head>
 4 <meta charset="UTF-8">
 5 <title>Insert title here</title>
 6 <script type="text/javascript">
 7     window.onload=function(){
 8         var cityNode=document.getElementById("city");
 9         var liNode=document.createElement("li");
10         cityNode.appendChild(liNode);
11     }
12 </script>
13 </head>
14 <body>
15     <p>你喜欢哪个城市?</p>
16     <ul id="city"><li id="bj" name="BeiJing">北京</li>
17         <li>上海</li>
18         <li>东京</li>
19         <li>首尔</li>
20     </ul><br>
21         
22     <p>你喜欢哪款单机游戏?</p>
23     <ul id="game">
24         <li id="rl">红警</li>
25         <li>实况</li>
26         <li>极品飞车</li>
27         <li>魔兽</li>
28     </ul><br>
29     
30     性别: <input type="radio" name="gender" value="male"/>Male
31             <input type="radio" name="gender" value="female"/>Female<br><br>
32         
33     姓名: <input type="text" name="username" value="atguigu"/>
34 </body>
35 </html>

 

3.运行效果

  

 

4.创建并增加文本节点

  createTextNode();

 

5.创建增加文本节点程序

 1 <!DOCTYPE html>
 2 <html>
 3 <head>
 4 <meta charset="UTF-8">
 5 <title>Insert title here</title>
 6 <script type="text/javascript">
 7     window.onload=function(){
 8         //创建元素节点
 9         var liNode=document.createElement("li");
10         //创建文本节点
11         var liTextNode=document.createTextNode("四川");
12         //将文本节点加入到元素节点中
13         liNode.appendChild(liTextNode);
14         //将li元素节点增加到city元素节点下
15         var cityNode=document.getElementById("city");
16         cityNode.appendChild(liNode);
17     }
18 </script>
19 </head>
20 <body>
21     <p>你喜欢哪个城市?</p>
22     <ul id="city"><li id="bj" name="BeiJing">北京</li>
23         <li>上海</li>
24         <li>东京</li>
25         <li>首尔</li>
26     </ul><br>
27         
28     <p>你喜欢哪款单机游戏?</p>
29     <ul id="game">
30         <li id="rl">红警</li>
31         <li>实况</li>
32         <li>极品飞车</li>
33         <li>魔兽</li>
34     </ul><br>
35     
36     性别: <input type="radio" name="gender" value="male"/>Male
37             <input type="radio" name="gender" value="female"/>Female<br><br>
38         
39     姓名: <input type="text" name="username" value="atguigu"/>
40 </body>
41 </html>

 

6.运行结果

  

 

二:对应小实验

1.需求一

  点击 submit 按钮时, 检查是否选择 type, 若没有选择给出提示: "请选择类型";
  检查文本框中是否有输入(可以去除前后空格), 若没有输入,则给出提示: "请输入内容";
  若检查都通过, 则在相应的 ul 节点中添加对应的 li 节点

 

 

2.程序

 1 <!DOCTYPE html>
 2 <html>
 3 <head>
 4 <meta charset="UTF-8">
 5 <title>Insert title here</title>
 6 <script type="text/javascript">
 7     window.onload=function(){
 8         var submitNode=document.getElementById("submit");
 9         submitNode.onclick=function(){
10             //类型的选择
11             var typeNode=document.getElementsByName("type");
12             var typeVal=null;
13             for(var i=0;i<typeNode.length;i++){
14                 if(typeNode[i].checked){
15                     typeVal=typeNode[i].value;
16                     //alert(typeVal);
17                     break;
18                 }
19             }
20             if(typeVal==null){
21                 alert("请选择类型");
22                 return false;
23             }
24             //值的选择
25             var textNode=document.getElementsByName("name")[0];
26             var textValue=textNode.value;
27             //值的判断
28             var reg=/^\s*|\s*$/g;
29             textValue=textValue.replace(reg,"");
30             textNode.value=textValue;
31             if(textValue==""){
32                 alert("请输入值");
33                 return false;
34             }
35             //将值添加到新的节点中
36             //alert(typeVal);
37             //alert(textValue);
38             liNode=document.createElement("li");
39             liTextNode=document.createTextNode(textValue);
40             liNode.appendChild(liTextNode);
41             document.getElementById(typeVal).appendChild(liNode);
42             return false;    
43         }        
44     }
45 </script>
46 </head>
47 <body>
48     <p>你喜欢哪个城市?</p>
49     <ul id="city">
50         <li id="bj" >北京</li>
51         <li>上海</li>
52         <li>东京</li>
53         <li>首尔</li>
54     </ul><br>
55     
56     <p>你喜欢哪款单机游戏?</p>
57     <ul id="game">
58         <li id="rl">红警</li>
59         <li>实况</li>
60         <li>极品飞车</li>
61         <li>魔兽</li>
62     </ul><br>    
63         
64     <form action="js-3.html" name="myform">    
65             <input type="radio" name="type" value="city">城市
66             <input type="radio" name="type" value="game">游戏
67             
68             name: <input type="text" name="name"/>
69             
70             <input type="submit" value="Submit" id="submit"/>        
71     </form>
72 </body>
73 </html>

 

3.效果

  

 

4.需求二

  使包括新增的 li 都能响应 onclick 事件: 弹出 li 的文本值.

 

5.程序

 1 <!DOCTYPE html>
 2 <html>
 3 <head>
 4 <meta charset="UTF-8">
 5 <title>Insert title here</title>
 6 <script type="text/javascript">
 7     window.onload=function(){
 8         //需求二,使用函数调用的方式
 9         //保持原有的li可以,然后在新增的li上添加onclick实践。
10         function showContent(liNode){
11             alert("^_^#" + liNode.firstChild.nodeValue);
12         }
13         
14         var liNodes = document.getElementsByTagName("li");
15         for(var i = 0; i < liNodes.length; i++){
16             liNodes[i].onclick = function(){
17                 showContent(this);
18             }
19         }
20         
21         //需求一部分
22         var submitNode=document.getElementById("submit");
23         submitNode.onclick=function(){
24             //类型的选择
25             var typeNode=document.getElementsByName("type");
26             var typeVal=null;
27             for(var i=0;i<typeNode.length;i++){
28                 if(typeNode[i].checked){
29                     typeVal=typeNode[i].value;
30                     //alert(typeVal);
31                     break;
32                 }
33             }
34             if(typeVal==null){
35                 alert("请选择类型");
36                 return false;
37             }
38             //值的选择
39             var textNode=document.getElementsByName("name")[0];
40             var textValue=textNode.value;
41             //值的判断
42             var reg=/^\s*|\s*$/g;
43             textValue=textValue.replace(reg,"");
44             textNode.value=textValue;
45             if(textValue==""){
46                 alert("请输入值");
47                 return false;
48             }
49             //将值添加到新的节点中
50             //alert(typeVal);
51             //alert(textValue);
52             liNode=document.createElement("li");
53             liTextNode=document.createTextNode(textValue);
54             liNode.appendChild(liTextNode);
55                 //添加onclick事件
56             liNode.onclick = function(){showContent(this);}
57             document.getElementById(typeVal).appendChild(liNode);
58             return false;    
59         }        
60     }
61 </script>
62 </head>
63 <body>
64     <p>你喜欢哪个城市?</p>
65     <ul id="city">
66         <li id="bj" >北京</li>
67         <li>上海</li>
68         <li>东京</li>
69         <li>首尔</li>
70     </ul><br>
71     
72     <p>你喜欢哪款单机游戏?</p>
73     <ul id="game">
74         <li id="rl">红警</li>
75         <li>实况</li>
76         <li>极品飞车</li>
77         <li>魔兽</li>
78     </ul><br>    
79         
80     <form action="js-3.html" name="myform">    
81             <input type="radio" name="type" value="city">城市
82             <input type="radio" name="type" value="game">游戏
83             
84             name: <input type="text" name="name"/>
85             
86             <input type="submit" value="Submit" id="submit"/>        
87     </form>
88 </body>
89 </html>

 

6.效果

  

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值