TypeError:无法将属性“ Id”设置为“ Null”

时间:2020-02-15 16:33:13

标签: javascript html

当我运行代码时,它确实可以在浏览器中运行,但错误始终出现。 这是我的代码:

<div id="dashboardJob">
  <script>
     var i = 0;
     do {
        document.getElementById("dashboardJob").id = "dashboardJob" + i;  
        i++;
     }
     while (i < 40)
  </script>
</div>

有人能指出我在这里缺少什么吗?

欢呼

2 个答案:

答案 0 :(得分:1)

在do-while循环的第一次迭代期间,document.getElementById("dashboardJob").id将返回null,因为它没有遇到div的结束标记。

此外,您尝试将同一元素的id动态更改40次。不知道这是否就是您要通过代码实现的目标。但是,它不会在第二次迭代中再次出现,因为在第二次迭代中没有ID为dashboardJob的元素。

答案 1 :(得分:0)

您需要将<script>标签放在DIV下方

<div id="dashboardJob">

</div>
<script>
     var i = 0;
     do {
        document.getElementById("dashboardJob").id = "dashboardJob" + i;  
        i++;
     }
     while (i < 40)
 </script>

它不起作用的原因是,一旦浏览器看到一个打开的脚本标签,它就会开始执行代码,但是那时,DIV尚未关闭,这就是为什么会出错的原因。

编辑

您的代码将无效。我不确定,您要完成什么,但是如果循环第一次运行,则更改其ID属性,则第二次迭代将失败,因为不会有ID为id="dashboardJob"的DIV,但是与id="dashboardJob-1"