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