稍微修改了一下,谁给完善下? 有且仅有一颗心时,点击第一颗星时所有星星变黑。
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>
举报
0/150
提交
取消