一个关于js定义个带obj参数的函数的问题。

我现在定义一个函数

function a1(obj){

obj.style.color="white";

}

如果我把这个函数用这种方式添加,(假设button是一个按钮).button.onclick="a1(button)" ;会添加不上,当时仔细一想逻辑上又好像确实可行,因为a1(button)等于把obj变成了实际的button,为什么这样不行呢?

我知道怎么弄能行,但是我确实想搞明白为什么这样不行,谢谢大家了


Sprash
浏览 3506回答 3
3回答

李晓健

<!DOCTYPE  HTML> <html > <head>     <meta charset="utf-8"/>     <title>xxxxxx</title> </head> <body> <button id="button" style="background-color: #0b8df1">我是按钮</button> <script type="text/javascript">     function a1(e){         var target = e.target;         target.style.color="white";     }     var button = document.getElementById('button');     button.onclick = a1; </script> </body> </html>

qq_天啊下雪_0

onclick="a1(this)"

qq_冲哥_0

在JS 中, 你想操作哪个元素,就要先获取哪个元素, 而不是直接用哪个元素。JS操作DOM元素,button 是HTML 元素。a1(button)等于把obj变成了实际的button, 变成了 button.style.color ='white', 你应当没有这么写过。都是 var oBtn = document.getElementsByTagName('button')[0],  oBtn.style.color ="white'
打开App,查看更多内容
随时随地看视频慕课网APP