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

为什么不使用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函数

            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>


正在回答

1 回答

事件是给stars数组绑定的,就需要用this来获取当前点击的星,你改成stars[i].getAttribute()了怎么知道点的是哪个星?

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

举报

0/150
提交
取消

为什么不使用this就运行不了?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信