Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/364.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript getElementById在代码中返回null,但在控制台中工作_Javascript_Php_Html - Fatal编程技术网

Javascript getElementById在代码中返回null,但在控制台中工作

Javascript getElementById在代码中返回null,但在控制台中工作,javascript,php,html,Javascript,Php,Html,我正在使用javascript从保存的值填充html表单 我必须检查一个复选框表,所以我使用一个php脚本生成一个js函数,稍后执行 for($i = 0; $i < count($day_pos) - 1; $i++) { if ($day_pos[$i + 1] - $day_pos[$i] > 7) { if ($day_pos[$i + 1] - $day_pos[$i] > 8) { ec

我正在使用javascript从保存的值填充html表单

我必须检查一个复选框表,所以我使用一个php脚本生成一个js函数,稍后执行

    for($i = 0; $i < count($day_pos) - 1; $i++)
{
    if ($day_pos[$i + 1] - $day_pos[$i] > 7)
    {
        if ($day_pos[$i + 1] - $day_pos[$i] > 8)
        {
            echo ("document.getElementById(\"".$rdv_days[$i * 2]."\").checked = true;");
            echo ("\ndocument.getElementById(\"".$rdv_days[$i * 2 + 1]."\").checked = true;");
        }
        else if ($uf_hours[$day_pos[$i] + 5] == "sur")
        {   
            echo ("document.getElementById(\"".$rdv_days[$i * 2]."\").checked = true;");
        }
        else
        {
            echo ("document.getElementById(\"".$rdv_days[$i * 2 + 1]."\").checked = true;");
        }
    }
    echo("\n");
}

echo ("</script>");
下面是页面后面与之关联的表

<td>
<input type='checkbox' id='rdvMatLun3' name='rdvMatLun3' value='1'/>RDV</td>
</td>

在文档正文结束之前执行代码。它确保所有网站数据都已加载完毕

(function() {
   // your code here

})();
</body>

很可能在执行JS代码的时间点上不存在该元素。对此不确定,但请尝试在\n here\n document.getElementById之后提供空间。这就是我如何调用此函数的方法:@user3484799也许您应该将此类内容放到问题中。您可以显示PHP生成的HTML吗?您可以在屏幕上打印$rdv_days[$i*2]以查看它是否为空吗?如果是的话,那部分代码就帮不上忙了,为什么jQuery总是能处理这么简单的事情呢?网页被加载了,我正在设置一组列表的值,它正在工作,所以元素是loaded@epoch答案的第一个版本是使用jQuery。@rekire我没有看到任何编辑历史记录,所以我假设这是@cyan的第一个版本。这是一个在声明后立即调用的函数。您可以在不使用jQuery的情况下执行此操作,以验证此操作的有效性:在地址栏中,您可以通过键入javascript:然后键入一个命令来执行任意javascript,该命令看起来很像javascript:function{alert'this works';}@JustinBell你知道你可以在前5分钟内编辑任意多的答案吗?
(function() {
   // your code here

})();
</body>