js函数中this的传值的问题

<html>

<head>

    <meta charset="UTF-8">

    <title>Document</title>

    <script type="text/javascript">    

    var i=1;

    window.onload = function()

    {   node_name = document.body.firstChild;

        node_name.setAttribute("src","images/sh_hero_1.jpg");

        node_name.setAttribute("onclick","c(this)");

    }

    function c(q)

    {

        i++;

        q.setAttribute("src","images/sh_hero_"+i+".jpg");

    }

    </script>

</head>

<body><img/></body>

</html>

node_name.setAttribute("onclick","c(this)");中的this工作原理是什么?为什么能把node_name这个局部变量传出去?新人小白求轻拍。

DIEA
浏览 1418回答 1
1回答

萧十郎

<button&nbsp;onclick="c(this)"></button><script>function&nbsp;c(el){&nbsp;&nbsp;&nbsp;&nbsp;//此时el引用的是button}</script>你的代码node_name.setAttribute("onclick","c(this)");其实是动态地添加类似上面button中的onclick属性。当按下按钮时,会执行onclick中的代码,在c(this)这段短短的代码中,this就是指向当前元素。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript