【问题标题】:Why do I get this error in my JavaScript?为什么我的 JavaScript 会出现这个错误?
【发布时间】:2017-12-31 21:55:07
【问题描述】:

我有一个包含 Javascript 脚本的 html 文件。当我右键单击该文件时,在本地使用 Firefox 打开,它工作得很好。但是,当我将文件放在服务器上时,Javascript 无法按预期工作,并且出现此错误 -

TypeError: 无法读取 null 的属性“行”

var tableResult = document.getElementById("tableForChange");
    for (var y=1; y < tableResult.rows.length;){ //error on this line

tableResult 是一个 html 表格。当我在本地打开文件时一切正常。

tableResult 是通过将 XSL 转换应用于 XML 文档而生成的 html 表。作为 XSL 转换的一部分,我做&lt;table id="tableForChange"&gt;。当我在本地打开文件并检查元素时,该表具有 id。但是,当我在线加载文件并检查元素时,该表没有 ID。

【问题讨论】:

  • tableResult 为空。它没有返回一个元素。可能在调用此脚本时该元素不在页面上,或者您在选择器中输入了错字。
  • 但是当我在本地打开文件时它可以工作?
  • :-( 你不支持 MSIE11
  • Firefox 没有错误。
  • 当您尝试在下拉菜单中使用 contains 或 equals 时,它不会像我在本地打开它时那样做

标签: javascript html dynamic html-table


【解决方案1】:
TypeError: Cannot read property 'rows' of null

因此,您正在访问属性rows 的对象实际上是null

这意味着tableResultnull

这意味着document.getElementById("tableForChange") 返回null

这可能意味着页面上不存在带有id“tableForChange”的元素,至少在执行此javascript时。


  1. 在构建正文之前,您的 javscript 是否在 &lt;head&gt; 标签中执行?如果是这样,请移动该代码以改为执行 onload
  2. 您确定该元素真的存在吗?可能你的 id 有错别字。

【讨论】:

  • 这背后的真正问题是:为什么它是空的。
猜你喜欢
  • 2022-10-15
  • 2023-04-04
  • 2020-02-03
  • 1970-01-01
  • 1970-01-01
  • 2017-06-14
  • 2020-02-16
  • 2013-12-30
相关资源
最近更新 更多