有什么区别
document.getElementById("id").click();
Run Code Online (Sandbox Code Playgroud)
和
document.getElementById("id").onclick();
Run Code Online (Sandbox Code Playgroud)
?
click 是 HTML 元素上的一个函数,您可以调用它来触发它们的点击处理程序: element.click();
onclick是一个属性,它反映了该onclick属性,并允许您在发生点击时将“DOM0”处理程序附加到元素:(element.onclick = function() { /*...*/};现代等价物是addEventListener("click", ...)[或attachEvent在 IE 的过时版本上]。)如果您调用 onclick( element.onclick()),您将调用附加到它的函数 - 但不是附加有现代方法的处理程序。
例如,click触发虚假点击;另一个允许您设置点击处理程序。(如果您调用 onclick,它只会调用通过旧的 DOM0 机制附加的处理程序。)
例子:
var btn = document.querySelector("input[type=button]");
// Add a modern handler to it
btn.addEventListener("click", function() {
console.log("Modern handler called");
});
// Add an obsolete DOM0 handler to it
btn.onclick = function() {
console.log("DOM0 handler called");
};
// Call `click`
console.log("Calling click():");
btn.click();
// Call `onclick` (which would be VERY unusual)
console.log("Calling onclick():");
btn.onclick();Run Code Online (Sandbox Code Playgroud)
<input type="button" value="Click Me">Run Code Online (Sandbox Code Playgroud)