小编vel*_*our的帖子

document.querySelector() 对不在 DOM 中的元素?

我正在使用 jQuery 开发一个网站,但我试图不再使用它。在 jQuery 中,您可以在不在网站上或尚未创建的元素上添加偶数侦听器,这没有问题。我的元素仅在您登录时出现在 DOM 上,并且整个网站只有一个 JS 文件。

问题是,例如,当您登录时,您看不到“登录”按钮,它甚至不在 DOM 中,但代码中仍然有事件侦听器,控制台上没有错误,脚本运行出色地。

$("#logInButton").on("click", somefunction);
Run Code Online (Sandbox Code Playgroud)

但是,document.querySelector("#logInButton").onclick = somefunction已经使用并登录了,它会抛出一个错误,因为document.querySelector("#logInButton")它为空。

我可以这样做:

let logInButton = document.querySelector("#logInButton");

logInButton ? logInButton.onclick = somefunction : "";
Run Code Online (Sandbox Code Playgroud)

它运作良好,但我知道这不是一个好的做法。如果不使用 jQuery,有什么解决方法或改进吗?

JSFiddle 如果发生什么情况。(参见控制台)

html javascript jquery

1
推荐指数
1
解决办法
2700
查看次数

标签 统计

html ×1

javascript ×1

jquery ×1