为了账号安全,请及时绑定邮箱和手机立即绑定

稍微修改了一下,谁给完善下? 有且仅有一颗心时,点击第一颗星时所有星星变黑。

正在回答

1 回答

<!DOCTYPE html>
<html>
    <head>
    <meta charset="UTF-8">
    <title></title>
    <style type="text/css">
span {
    cursor: pointer;
}
</style>
    <script type="text/javascript">
        window.onload = function () {
            // 获取元素
            var stars = document.getElementById('stars').getElementsByTagName('span');
            var ret = document.getElementById('ret');
	//获得所有星星的数量
	function starNum(){
		var len=0;
		for(var i =0;i<stars.length;i++){
		 if( stars[i].style.color=="red"){
			 len = i+1;
			 }	
		}return len;
		}		
	//定义getStar函数
	function getStar(n){
	  for(var i=0;i<stars.length;i++){
		 if(i<=n-1){
		  stars[i].style.color="red";
		}
		else{
		  stars[i].style.color="";
		  }
		}
		ret.innerHTML=n;		
		
		
	}  
	// 每个星星节点的点击事件
	var num=ret.innerHTML;  //点击前的星星分数
	for(var i =0;i<stars.length;i++){
		stars[i].onclick=function(){
			var n = this.getAttribute("star");		
			getStar(n);
	  
			//如果有且仅有一颗心,并且点击星时,所有星变黑色
			if (num==1){		// 点击前的星星分数 == 1
				stars[0].style.color="";	
			    num = 0;
			} else {
				num = n;		// 更新
			}
		}
		stars[i].onmouseover=function(){
			var n = this.getAttribute("star");		
			getStar(n);  
		}
		stars[i].onmouseout=function(){
			getStar(num);
		}
	}        
  }
    </script>
    </head>
    <body>
<div id="stars"> 
	<span star="1">★</span> 
	<span star="2">★</span> 
	<span star="3">★</span> 
	<span star="4">★</span> 
	<span star="5">★</span> 
</div>
<div id="ret"></div>
</body>
</html>


1 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信