Javascript:body onload事件,变量存在,但之后,它将变为未定义

Javascript:body onload事件,变量存在,但之后,它将变为未定义,javascript,Javascript,这是我能创造的最好的例子。innerHTML的值出现在由onload函数触发的警报中。当它点击document.write时,相同的innerHTML将变为null。关于如何让innerHTML显示在onload函数之外,有什么想法吗?我尝试过全局变量,甚至将值复制到隐藏的输入,结果仍然是空的 <html> <head> <script language='javascript'> function onload_function() { alert

这是我能创造的最好的例子。innerHTML的值出现在由onload函数触发的警报中。当它点击document.write时,相同的innerHTML将变为null。关于如何让innerHTML显示在onload函数之外,有什么想法吗?我尝试过全局变量,甚至将值复制到隐藏的输入,结果仍然是空的

<html>

<head>

<script language='javascript'>
 function onload_function() {
  alert(document.getElementById("sample_size").innerHTML);
 }

 document.write("this is a test: " + document.getElementById("sample_size").innerHTML);
</script>

</head>

<body onload='onload_function()'>
 <form name='form_test'>
  <table border='0' cellpadding='0' cellspacing='0'>
   <tr>
    <td id='sample_size' style='display:none'>16</td>
   </tr>
  </table>
 </form>
</body>

</html>

函数onload_函数(){
警报(document.getElementById(“示例大小”).innerHTML);
}
document.write(“这是一个测试:”+document.getElementById(“sample_size”).innerHTML);
16

不要使用全局变量,尝试将其放入具有唯一id的隐藏输入元素中,这样您就可以使用另一个函数使用
getElementByID

获取它。如果没有源代码,我们将无法真正帮助您

这里有三种可能性

该变量实际上可能不是全局变量。
您是否在函数中使用
var
关键字声明它

变量可能被分配到其他地方的
未定义的

你可能把它的名字弄错了


检查中的DOM选项卡,查看变量是否存在及其值。

您应该尝试添加脚本:

<script language='javascript'>
 document.write("this is a test: " + document.getElementById("sample_size").innerHTML);
</script>

document.write(“这是一个测试:”+document.getElementById(“sample_size”).innerHTML);

在HTML
中,而不是在
中。在标头中计算javascript时,值/页面尚未加载

您不能在
onload
之外写入
td
innerHTML
,因为
td
onload
触发之前不存在

如果您将调用放入
文档,则此功能有效。在onload函数中写入

<script language='javascript'>
 function onload_function() {
  alert(document.getElementById("sample_size").innerHTML);
  document.write("this is a test: " + document.getElementById("sample_size").innerHTML);
 } 
</script>

函数onload_函数(){
警报(document.getElementById(“示例大小”).innerHTML);
document.write(“这是一个测试:”+document.getElementById(“sample_size”).innerHTML);
} 

请给我们看源代码。这是个可怕的主意。您正在用设计方面的问题来交换一个非常缓慢的(相比之下)解决方案实现,这无疑只是一个小问题。现在他已经添加了源代码,我还有其他事情要做。谢谢你的否决票。