无法使用Javascript设置innerHTML属性

时间:2015-08-09 01:02:50

标签: javascript html dom-traversal

我想使用Javascript设置p元素的文本。我该怎么做才能修复错误并正确设置文本?为什么我会收到此错误?

当我通过单击html文件中此行代码中的html按钮执行generate()时,

<input type="submit" value="Generate!" onclick="generate()">

我在控制台中收到以下错误:

  

未捕获的TypeError:无法设置属性&#39; innerHTML&#39;为null

下面是我引用的javascript randomizer.js文件中的generate()函数。

function generate() {
  var team = document.getElementById('template').cloneNode(true)
  console.log('queryselector', team.querySelectorAll('p')[0].innerHTML)
  team.querySelectorAll('p')[0].innerHTML = "ah hah!";
}

以下是一些其他注意事项和注意事项:

  1. 我的Javascript文件在我的html文档的最末端附近被引用,如下所示:
  2. ...

    <script type="text/javascript" src='randomizer.js'></script>
    </body>
    </html>
    
    1. 我的queryselector语句的console.log输出已定义,并正确显示p元素中的当前文本。所以,奇怪的是,当我尝试设置它时,它表明team为空。

1 个答案:

答案 0 :(得分:0)

我的代码现在似乎按预期工作了。不幸的是,我现在知道原因。我离开了我的电脑和浏览器,当我回来时,我注意到控制台中有两条错误消息但由于我已经点击刷新而无法读取它们。我认为暂时我不得不把它当作一些奇怪的浏览器问题,或者可能是我之后插入的一些代码行(未显示)。谢谢大家。