Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/13.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 错误显示为“错误”;无法设置属性';innerHTML';“无效”的定义;_Javascript_Html Table - Fatal编程技术网

Javascript 错误显示为“错误”;无法设置属性';innerHTML';“无效”的定义;

Javascript 错误显示为“错误”;无法设置属性';innerHTML';“无效”的定义;,javascript,html-table,Javascript,Html Table,我正在从Javascript生成html表,并将其作为InnerHTML分配给div标记,但它给出了一个错误: “未捕获的TypeError:无法将属性'innerHTML'设置为null” 一些文本 函数generateLegend() { var fullTable=''fullTable='MM 01:00至21:30' document.getElementById('rosterlegend')。innerHTML=fullTable } generateLegend(); 错误:

我正在从Javascript生成html表,并将其作为InnerHTML分配给div标记,但它给出了一个错误:

“未捕获的TypeError:无法将属性'innerHTML'设置为null”


一些文本
函数generateLegend()
{
var fullTable=''fullTable='MM
01:00至21:30'
document.getElementById('rosterlegend')。innerHTML=fullTable
}
generateLegend();
错误:未捕获类型错误:无法将属性“innerHTML”设置为null


删除HTML字符串中的新行和额外空格

其余代码工作正常! 然而,这不是一个神的实践。 理想情况下,您必须等待窗口加载

window.onload(){
  generateLegend();
}
函数generateLegend(){
var fullTable=“MM01:00至21:30EVVV09:00至05:30”;
document.getElementById('rosterlegend')。innerHTML=fullTable;
}
generateLegend()

某些文本将删除HTML字符串中的新行和额外空格

其余代码工作正常! 然而,这不是一个神的实践。 理想情况下,您必须等待窗口加载

window.onload(){
  generateLegend();
}
函数generateLegend(){
var fullTable=“MM01:00至21:30EVVV09:00至05:30”;
document.getElementById('rosterlegend')。innerHTML=fullTable;
}
generateLegend()

Some text
您的问题是,在加载DOM之前,您试图使用
id
的“rosterlegend”访问您的div。这意味着当javascript试图访问元素时,它无法访问。解决此问题的一种方法是将
load
DOMContentLoaded
事件侦听器添加到元素中,在加载HTML(如果使用
load
事件,则包括图像)和窗口后,函数将启动。通过这种方式,javascript将了解HTML

请参见下面的工作示例:

函数generateLegend(){
var fullTable=“MM01:00至21:30EVVV09:00至05:30”;
document.getElementById('rosterlegend')。innerHTML=fullTable;
}
window.addEventListener(“加载”,generateLegend);//加载窗口后调用函数

您的问题是,在加载DOM之前,您试图使用
id
的“rosterlegend”访问您的div。这意味着当javascript试图访问元素时,它无法访问。解决此问题的一种方法是将
load
DOMContentLoaded
事件侦听器添加到元素中,在加载HTML(如果使用
load
事件,则包括图像)和窗口后,函数将启动。通过这种方式,javascript将了解HTML

请参见下面的工作示例:

函数generateLegend(){
var fullTable=“MM01:00至21:30EVVV09:00至05:30”;
document.getElementById('rosterlegend')。innerHTML=fullTable;
}
window.addEventListener(“加载”,generateLegend);//加载窗口后调用函数

尝试更改为类似这样的内容,以便确保HTML DOM首先完成加载
使用ES6模板字符串而不是普通字符串

document.addEventListener('DOMContentLoaded',()=>{
generateLegend();
});
函数generateLegend(){
完整表=`
嗯
01:00至21:30
EVVV
09:00至05:30
`;
document.getElementById('rosterlegend')。innerHTML=fullTable;
}

尝试更改为类似这样的内容,以便确保HTML DOM首先完成加载
使用ES6模板字符串而不是普通字符串

document.addEventListener('DOMContentLoaded',()=>{
generateLegend();
});
函数generateLegend(){
完整表=`
嗯
01:00至21:30
EVVV
09:00至05:30
`;
document.getElementById('rosterlegend')。innerHTML=fullTable;
}


具有
id=“rosterlegend”
的元素是否存在?大多数情况下,在DOM未完全加载的情况下尝试运行脚本时会发生这种情况。加载页面后,如果在控制台中运行
document.getElementById('rosterlegend')
,会发生什么情况?可能是@CarlBinalla的重复项是的,您是否将脚本放在
之前?元素是否具有
id=“rosterlegend”
是否存在?大多数情况下,在DOM未完全加载的情况下尝试运行脚本时会发生这种情况。如果在加载页面后在控制台中运行
document.getElementById('rosterlegend')
,会发生什么情况?可能是@CarlBinalla的副本是的,您是否将脚本放在
之前?onload的唯一问题是我们依赖于成为唯一的调用方。@Bibberty“唯一的调用方”是什么意思当我们做了代码> WiDOW.OnLoad=MyEngult时,我们可以通过下面的脚本来重写:<代码> WOWDO.OnLoad = MyOrthPurvivs/Cult>。因此,最好考虑<代码>窗口>文档。AdvestTristNover(‘Load’,MyActudio’< /COD>)这是多用户。@ BiBByTyAh,我从来没有想到过。我已经更新了我的答案,谢谢;)只有负载的问题是我们依赖于唯一的呼叫者。@ BBBYTY是什么意思:“只有调用方”?当我们做“代码> WiDOW.OnLoad=MyEngult< /代码>时,我们可以被随后的脚本重写:<代码> WORDOW.OnLoad=MyOffEngult。因此,最好考虑<代码>窗口>文档。
因为这是多用户的。@Bibberty啊,我从来没想过。我更新了我的答案,比