【问题标题】:getelementbyid innertext not workinggetelementbyid 内部文本不起作用
【发布时间】:2013-12-02 23:03:11
【问题描述】:

您好,尝试使用 getelementbyid 和 innerText 但它在任何浏览器中都不起作用。当我打开错误控制台时,我收到以下错误消息

TypeError: 'null' 不是一个对象(评估 'document.getElementById("username").innerText = name')

这是我的代码:

<script>
alert("Using Javascript","");
var name = prompt("Please enter your name?", "");
var course = prompt("What course are you studying?", "");
document.getElementById("username").innerText = name;
document.getElementById("usercourse").innerText = course;
</script>

我不知道为什么会收到 null 错误。

【问题讨论】:

  • 您可能在引用的元素存在之前运行脚本。另请注意,Firefox 不支持 innerText,它在 FF 中是 textContent
  • 确保您的网页包含具有 id 属性的元素
  • 您的 HTML 在哪里。在引用它们之前,您的 HTML 中应该有 ID 为“username”和“usercourse”的元素...

标签: javascript null getelementbyid innertext


【解决方案1】:

使用这个:

document.getElementById("username").value = name;
document.getElementById("usercourse").value = course;

这行得通。

【讨论】:

    【解决方案2】:

    让我通过在解释之前提供答案来解决您的问题...

    Working Solution

    HTML 更改...

    USERNAME:<label id="username"></label>
             <br>
    USER COURSE:<label id="usercourse"></label>
    

    说明:现在 HTML 非常混乱,我相信不同的人可能会以不同的方式做到这一点,但是我想告诉你的是,如果一个元素不存在,你就不能引用它......

    getElementByID 本身是不言自明的。在您的问题中,您在哪里看到您尝试引用的 2 个 id,因此控制台中出现“null”错误。您的 HTML 必须有这 2 个 ID。您可以从 javascript 动态添加元素,但这是另一个问题。

    回到解决方案。

    innerText 不适用于 Mozilla,因为它是 Internet Explorer 属性。它确实适用于 Chrome,但不适用于 FF。因此,您应该考虑使用

    Node.textContent
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-07-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-30
      相关资源
      最近更新 更多