<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<style type="text/css">
stars {
cursor: pointer;
}
</style>
<script type="text/javascript">
window.onload = function () {
// 获取元素
var stars = document.getElementById('stars').getElementsByTagName('stars');
var ret = document.getElementById('ret');
//定义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+"个猩猩";
}
// 每个星星节点的点击事件
for(var i=0;i<stars.length;i++)
stars[i].onclick = function(){
var starnum=this.getAttribute('star');
//改成stars[i].getAttribute()就报错,为什么?
getStar(starnum);
}
}
}
</script>
</head>
<body>
<div id="stars">
<stars star="1">★</stars>
<stars star="2">★</stars>
<stars star="3">★</stars>
<stars star="4">★</stars>
<stars star="5">★</stars>
</div>
<div id="ret"></div>
</body>
</html>
事件是给stars数组绑定的,就需要用this来获取当前点击的星,你改成stars[i].getAttribute()了怎么知道点的是哪个星?