我有这段代码:
<html>
<body>
<script>
function myFunction (){
// some javascript
}
document.getElementsByClassName('test')[0].setAttribute("onclick", "myFunction()");
</script>
<button class="test"> Submit Request </button>
</body>
</html>
我想使用在页面加载时执行的JavaScript将onclick属性添加到页面上的按钮。
现在这样做我得到一个错误,上面写着无法读取属性&#39; setAttribute&#39;未定义的。
有谁知道我为什么会收到此错误以及如何解决此问题?
注意:访问该按钮的唯一选择是通过它的class属性,我无法以任何方式修改button元素。
谢谢!
答案 0 :(得分:3)
您收到错误,因为当您尝试访问该元素时该元素不存在。您需要执行事件绑定操作printf
事件。
window.onload
我建议您使用EventTarget.addEventListener()
并更好地使用DOMContentLoaded
事件
window.onload = function(){
document.getElementsByClassName('test')[0].addEventListener("click", myFunction, false);
}
答案 1 :(得分:0)
像这样使用:
document.getElementsByClassName('test')[0].setAttribute("onclick", myFunction);
请注意,该引号已从myFunction中删除,并且括号也会被删除,因为它只是在单击按钮时才需要使用此功能。