Dom 浏览器开发工具中的目标为空错误

Dom 浏览器开发工具中的目标为空错误,dom,Dom,我试图将新创建的元素(行和单元格)插入到ID为“dynPop”的行上方的表中(通过javascript)。当我尝试这样做时,我得到以下错误 TypeError:目标为空 这是表格的HTML <table> <tr id="dynPop"> <td style="color:white"> blah blah blah blah blah </td> </tr> </table> 有没有

我试图将新创建的元素(行和单元格)插入到ID为“dynPop”的行上方的表中(通过javascript)。当我尝试这样做时,我得到以下错误

TypeError:目标为空

这是表格的HTML

<table>
  <tr id="dynPop">
    <td  style="color:white">
      blah blah blah blah blah
    </td>
  </tr>
</table>
有没有想过为什么这个javascript代码不起作用

谢谢

如果没有看到HTML的其余部分,我不确定,但我认为主要问题是JavaScript在加载DOM之前执行

您可以尝试将JavaScript放入一个函数中,该函数在body元素的
onload
事件中被调用:

<!DOCTYPE html>
<html>
<head>
    <title>asdf</title>

<script type="text/javascript">
    function doThing() {
        $rownumber = 1;
    var target = document.getElementById('dynPop');

        var $CHAP_IMAGE = "$out[1]; ";
        var olr1 = document.createElement('tr');
        var old1 = document.createElement('td'); 
        var olt1 = document.createTextNode($CHAP_IMAGE); 
        old1.appendChild(olt1); 
        olr1.appendChild(old1); 

        $rowname = 'row' + $rownumber;
        olr1.setAttribute('name',$rowname);
        target.insertBefore(target, olr1);
        $rownumber++;

    }
</script>
</head>
<body onload="doThing()">
   <table>
     <tr id="dynPop">
      <td  style="color:white">
    blah blah blah blah blah
      </td>
    </tr>
  </table> 
</body>
</html>

asdf
函数doThing(){
$rownumber=1;
var target=document.getElementById('dynPop');
var$CHAP_IMAGE=“$out[1];”;
var olr1=document.createElement('tr');
var old1=document.createElement('td');
var olt1=document.createTextNode($CHAP\u IMAGE);
old1.附加子对象(olt1);
olr1.儿童(old1);
$rowname='row'+$rownumber;
olr1.setAttribute('name',$rowname);
target.insertBefore(target,olr1);
$rownumber++;
}
废话废话废话
<!DOCTYPE html>
<html>
<head>
    <title>asdf</title>

<script type="text/javascript">
    function doThing() {
        $rownumber = 1;
    var target = document.getElementById('dynPop');

        var $CHAP_IMAGE = "$out[1]; ";
        var olr1 = document.createElement('tr');
        var old1 = document.createElement('td'); 
        var olt1 = document.createTextNode($CHAP_IMAGE); 
        old1.appendChild(olt1); 
        olr1.appendChild(old1); 

        $rowname = 'row' + $rownumber;
        olr1.setAttribute('name',$rowname);
        target.insertBefore(target, olr1);
        $rownumber++;

    }
</script>
</head>
<body onload="doThing()">
   <table>
     <tr id="dynPop">
      <td  style="color:white">
    blah blah blah blah blah
      </td>
    </tr>
  </table> 
</body>
</html>