我正在阅读JavaScript教程。当我继续时,我决定制作一个以Flash Cards形式的网页,以总结和实践JS概念。每个JS概念都将拥有自己的HTML页面以及相应的闪存卡,但是,我不想为每个脚本创建单独的JS页面,因此我只有一个“ main.js”,并且创建了一些“ onclick”每个闪存卡的事件函数,这些函数在单击时应该显示摘要信息,并演示JS概念的作用。
尽管如此,当我制作第二个HTML页面并编写脚本时,偶然发现了以下错误:def isHealthy(port: Int): Future[Boolean] =
Http().singleRequest(HttpRequest(uri = s"http://0.0.0.0:${port}/healthcheck"))
.map(r => r.status.isSuccess()).recover{ case _ => false }
val healthChecker: Route = pathEndOrSingleSlash {
onComplete(isHealthy(9090) zip isHealthy(9091)) {
x => complete(x.toString)
}
}
for {
_ <- Http().bindAndHandle(routes1, "0.0.0.0", 9090)
_ <- Http().bindAndHandle(routes2, "0.0.0.0", 9091)
_ <- Http().bindAndHandle(healthChecker, "0.0.0.0", 9092)
} yield ()
经过一番研究,我发现我的第一个HTML页面中的JS脚本之间存在某种冲突。第二个。我实际上不完全了解此错误的原因,因为我认为我的功能没有被自动调用,您必须单击显示卡才能使它们运行,所以我不知道为什么这些功能返回“空”
但是无论如何,我可以通过将所有功能包装在Cannot set property 'onclick' of null
中来找到解决方法,但是我想知道是否有更好,更有效的方法来执行此操作,这是完整的代码: / p>
If ("code" !== null)
答案 0 :(得分:0)
我实际上不完全了解此错误的原因,因为我认为我的功能没有被自动调用,您必须单击显示卡才能运行它们,所以我不知道为什么这些功能会返回“空”。
该错误与那些函数无关。
您的代码显示“获取此元素。当有人单击它时,运行此功能”。
由于该元素不存在,发生的事情是这样的:
代码:获取此元素
浏览器:我找不到
代码:现在,在单击它时……
浏览器单击什么时?我只是说我找不到。
但是无论如何,我可以通过将所有函数包装在If(“ code”!== null)
中找到解决方法。
您仅将第三个与null进行比较,而您正测试其他是否为真。
但是我想知道是否有更好,更有效的方法
不是很大。
您可以将querySelector
的结果分配给变量,然后将这些变量用于测试和分配。
您可以跳过与null
的最后一个比较,也可以在此处使用真实性测试。