日期:2014-05-16  浏览次数:20364 次

javascript DOM(三)

三个练习:

?

1.

?

?

<html>
	<head>
		<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
		<title>Untitled Document</title>
		
		<script type="text/javascript">
			
			//点击任何一个 li 节点, 弹出其文本值
			
			//1. 代码需要编写在 window.onload 函数体中
			window.onload = function(){
				//2. 获取所有的 li 节点, 一个数组
				var liNodes = document.getElementsByTagName("li");		
				
				//3. 遍历 2 得到的数组
				for(var i = 0; i < liNodes.length; i++){
					//var liNode = liNodes[i];
					//4. 为每一个遍历的 li 节点的 onclick 属性赋值
					//5. 在赋值的函数体中, 弹出当前 li 节点的文本值
					liNode.onclick = function(){
						alert(this.firstChild.nodeValue);			
						//alert(liNodes[i].firstChild.nodeValue);		
						//因为在遍历的过程中, i 始终是一个变量, 最后取值为 8
						//alert(j);
						//因为 i 最终的取值是 8, 而 liNodes[8] 对应的节点根本就不存在, 所以以下代码无法工作
						//alert(liNodes[i].firstChild.nodeValue);												
					}
				}
				
			};
			
			
			var liNodes = document.getElementsByTagName("li");		
			
			for(var i = 0; i < liNodes.length; i++){
				alert(i);
				liNodes[i].onclick = function(){
					alert(i);												
				}
			}

		</script>
		
	</head>
	<body>
		<p>你喜欢哪个城市?</p>
		<ul id="city">
			<li id="bj" title="Beijing">北京</li>
			<li>上海</li>
			<li>东京</li>
			<li>首尔</li>
		</ul>
		
		<br><br>
		<p>你喜欢哪款单机游戏?</p>
		<ul id="game"><li id="ra">红警</li>
			<li>实况</li>
			<li>极品飞车</li>
			<li id="war3">魔兽</li></ul>  
		
		<br><br>
		gender: 
			<input type="radio" name="gender" value="male"/>Male
			<input type="radio" name="gender" value="female"/>Female
	</body>
</html>

?

?2.

?

<html>
	<head>
		<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
		<title>Untitled Document</title>
		
		<script type="text/javascript">
			
			window.onload = function(){
				
				//需求: 点击任何一个 li 节点, 改变其文本节点的文本值: 若文本节点中没有 "^^", 则在前边加上 "^^", 若有则去掉
				var liNodes = document.getElementsByTagName("li");
				for(var i = 0; i < liNodes.length; i++){
					liNodes[i].onclick = function(){
						var val = this.firstChild.nodeValue;
						var reg = /^\^{2}/;
						
						if(reg.test(val)){
							val = val.replace(reg, "");
						}else{
							val = "^^" + val;
						}
						
						this.firstChild.nodeValue = val;
					};
				}
				
			};
			
		</script>
		
	</head>
	<body>
		<p>你喜欢哪个城市?</p>
		<ul id="city">
			<li id="bj" title="Beijing">北京</li>
			<li>上海</li>
			<li>东京</li>
			<li>首尔</li>
		</ul>
		
		<br><br>
		<p>你喜欢哪款单机游戏?</p>
		<ul id="game"><li id="ra">红警</li>
			<li>实况</li>
			<li>极品飞车</li>
			<li id="war3">魔兽</li></ul>  
		
		<br><br>
		gender: 
			<input type="radio" name="gender" value="male"/>Male
			<input type="radio" name="gender" value="female"/>Female
	</body>
</html>

?

?3.

?

<html>
	<head>
		<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
		<title>Untitled Document</title>
		<script type="text/javascript">		
			window.onload = function(){	
				//****知识: 在 js 中 null, undefined, 0, false 都可以作为 false 使用, 除此以外可以作为 true 使用
			
				//需求: 点击 submit 按钮时, 检查是否选择 type, 若没有选择给出提示: "请选择类型"; 
				//                        检查文本框中是否有输入(可以去除前后空格), 若没有输入, 则给出提示: "请输入内容"; 
				//若检查都通过, 则在相应的 ul 节点中添加对应的 li 节点 
				
				//1. 选取 #submit 按钮, 并为其添加 onclick 响应函数
				document.getElementById("submit").onclick = function(){
					//3. 获取所有 name="type" 的节点(radio): types
					var types =