为什么我不能设置属性('onclick', function() { ... })?



我试过这个:

<div id="a">A</div>
<div id="b">B</div>
<script>
let a = document.getElementById('a');
let b = document.getElementById('b');
a.onclick = function() { alert('hi from a'); };
b.setAttribute('onclick', function() { alert('hi from b'); });
</script>

单击 A 将显示警报。单击 B 会发出以下错误消息:Uncaught SyntaxError: Function statements require a function name。为什么?

https://codepen.io/issactrotts/pen/yLYEXKZ

属性值是字符串,而不是函数。

请改用addEventListener

此错误显示是因为 setAttribute 只是获取字符串而不是函数

如果你想添加你应该使用的事件,你的代码是不正确的

b.onclick = function(){};

b.addEventListener("click",function(){});

但是如果你想设置onclick属性,你不能设置功能,你可以使用它

function bclick() { alert("hi from b"); }
b.setAttribute("onclick", "bclick()");

或者你可以使用 toString((

b.setAttribute("onclick", (function(){alert("hi from b");}).toString());

但是当我单击它时,它不做,因为那个只是 exsit 函数没有运行

您可以在值中使用字符串

b.setAttribute("onclick", 'alert("hi from b")';

相关内容

  • 没有找到相关文章

最新更新