DOM(三)-03-(示例-性格测试)

<!--
单选按钮演示:
2.性格测试
-->

<html>
	<head>
		<style type="text/css">
		#no1ul{
			list-style:none;/*将单选前面的黑点去除*/
			margin:0px;/*使选项距离页面左边0,即顶格写*/
		}
		.close{/*类选择器,在没单击“查看测试结果”时,默认将测试结果隐藏*/
			display:none;
		}
		.open{/*类选择器,在单击“查看测试结果”时,将测试结果显示*/
			display:block;
		}
		</style>
		
		<script type="text/javascript">
			function showResult(){
				
				//1.判断是否有答案被选中
				//获取所有li节点对象
				var collLiNodes = document.getElementsByName("no1");
				//判断每个li节点是否被选中
				var flag = false;//该标记用于判断是否有答案被选中
				var val;//定义一个变量,记录被选中答案的value值
				for(var x=0;x<collLiNodes.length;x++){
					
					if(collLiNodes[x].checked){
						
						flag = true;//只能选一个选项,那么在遍历所有li节点时,只要发现一个被选中,就直接break跳出循环
						val = collLiNodes[x].value;
						break;
					}
				}//至此,如果有选项被选中,就将flag置为真
				if(flag == false){//如果什么答案也没选,此时flag必为false,那么出现错误提示如下
					
					document.getElementById("errinfo").innerHTML = "没有任何答案被选中".fontcolor("red");
					document.getElementById("errinfo").className = "open";//将错误提示显示
					return;
				}
				
				if(val>=1 && val<=3){//【注意】这里还应该有对val值的健壮性判断,暂时先不写
					
					/*
					 *【注意】因为有两个最终测试结果,用户选择不同的答案会显示不同的结果,但是两个结果始终只能显示其中
					 *一个。所以当显示1结果时将2结果关闭,当显示2结果时将1结果关闭。
					 *else中代码同理。
					 */
					document.getElementById("result_1").className = "open";
					document.getElementById("result_2").className = "close";
					document.getElementById("errinfo").className = "close";//将错误提示隐藏
				}else{
					
					document.getElementById("result_1").className = "close";
					document.getElementById("result_2").className = "open";
					document.getElementById("errinfo").className = "close";//将错误提示隐藏
				}
			}
		</script>
	</head>
	<body>
		
		<!-- 性格测试 -->
		
		<h2>欢迎您参与性格测试:</h2>   <!-- h2是标题标签 -->
		<div>
			<h3>第一题:</h3>
			您喜欢的水果是什么?
		
			<ul id="no1ul">
				<li><input type="radio" name="no1" value="1" />葡萄</li>   <!-- radio是单选,checkbox是多选 -->
				<li><input type="radio" name="no1" value="2" />西瓜</li>
				<li><input type="radio" name="no1" value="3" />苹果</li>
				<li><input type="radio" name="no1" value="4" />芒果</li>
				<li><input type="radio" name="no1" value="5" />樱桃</li>
			</ul>
		</div>
		
		<div>
			<input type="button" value="查看测试结果" οnclick="showResult()"/>
			<hr/>
			<span id="errinfo" class="close"></span>
			<div id="result_1" class="close">1-3分:您的性格内向并扭曲,建议...</div>	<!-- 用类选择器定义样式 -->
			<div id="result_2" class="close">4分以上:您的性格外向并分裂,建议...</div>
		</div>
	</body>
</html>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值