為什么不使用this就運行不了?
<!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函數(shù)
? ? ? ? ? ? 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+"個猩猩";
? ? ? ? ? ? }
? ? ? ? ? ??
? ? ? ? ? ? // 每個星星節(jié)點的點擊事件
? ? ? ? ? ? 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>
2017-01-04
事件是給stars數(shù)組綁定的,就需要用this來獲取當前點擊的星,你改成stars[i].getAttribute()了怎么知道點的是哪個星?