解决该错误的更好方法是什么?

时间:2018-11-27 10:20:24

标签: javascript

我正在阅读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)

1 个答案:

答案 0 :(得分:0)

  

我实际上不完全了解此错误的原因,因为我认为我的功能没有被自动调用,您必须单击显示卡才能运行它们,所以我不知道为什么这些功能会返回“空”。

该错误与那些函数无关。

您的代码显示“获取此元素。当有人单击它时,运行此功能”。

由于该元素不存在,发生的事情是这样的:

  

代码:获取此元素

     

浏览器:我找不到

     

代码:现在,在单击它时……

     

浏览器单击什么时?我只是说我找不到。


  

但是无论如何,我可以通过将所有函数包装在If(“ code”!== null)

中找到解决方法。

您仅将第三个与null进行比较,而您正测试其他是否为真。

  

但是我想知道是否有更好,更有效的方法

不是很大。

您可以将querySelector的结果分配给变量,然后将这些变量用于测试和分配。

您可以跳过与null的最后一个比较,也可以在此处使用真实性测试。