Javascript document.getElementById(";someid';).innerHTML=";嗨;;不';我不工作

Javascript document.getElementById(";someid';).innerHTML=";嗨;;不';我不工作,javascript,dom,timer,scope,getelementbyid,Javascript,Dom,Timer,Scope,Getelementbyid,我不知道如何很好地操作DOM。我用过 document.getElementById('someid').innerHTML = "HI"; 在其他地方,它工作得很好。但是当我去给我的网页添加一个计时器时,我不能用上面的来更改一些文本(计时器)。所以我很困惑。你们在我遇到的其他问题上都帮了我。。。在打扰你们之前,我做了很多研究,但我感到困惑和沮丧 在signupForm.php中-SNIPPIT <title>Perry Computer Services - Signup<

我不知道如何很好地操作DOM。我用过

document.getElementById('someid').innerHTML = "HI";
在其他地方,它工作得很好。但是当我去给我的网页添加一个计时器时,我不能用上面的来更改一些文本(计时器)。所以我很困惑。你们在我遇到的其他问题上都帮了我。。。在打扰你们之前,我做了很多研究,但我感到困惑和沮丧

在signupForm.php中-SNIPPIT

<title>Perry Computer Services - Signup</title>
<script src="js/commonUtils.js" type="text/javascript"></script>
<script src="js/validation.js" type="text/javascript"></script>
<script src="js/timers.js" type="text/javascript"></script>
</head>
<body>
<script type="text/javascript">window.onload = CreateTimer(30);</script>
<form name="form1" method="post" action="signupForm.php?calling_page=validateform" accept-charset="utf-8">
  <table border="0" align="center">
    <tr class="table_top">
      <td class="tbl_col1"><div align="right" id="debug1"></div></td>
      <td class="tbl_col2"><div align="left" id="debug2"></div></td>
在signupForm.php中-SNIPPIT

<title>Perry Computer Services - Signup</title>
<script src="js/commonUtils.js" type="text/javascript"></script>
<script src="js/validation.js" type="text/javascript"></script>
<script src="js/timers.js" type="text/javascript"></script>
</head>
<body>
<script type="text/javascript">window.onload = CreateTimer(30);</script>
<form name="form1" method="post" action="signupForm.php?calling_page=validateform" accept-charset="utf-8">
  <table border="0" align="center">
    <tr class="table_top">
      <td class="tbl_col1"><div align="right" id="debug1"></div></td>
      <td class="tbl_col2"><div align="left" id="debug2"></div></td>

这就是我困惑的地方。我有另一个名为validation.js的.js文件,我使用了与上面相同的document.getElementById,它可以工作!!!我不明白


在validation.js中,我对DOM进行了大量修改,效果非常好!这是否有效,因为当我通过切换到下一个字段来更改字段时这是一个范围问题吗?如果有人不知道我做错了什么,我会尝试切碎我的validation.js并将其粘贴在这里,但这是一个巨大的问题。为什么一个函数可以工作而另一个函数不能工作?

您可以立即调用
CreateTimer
,并将其返回值(
undefined
)分配给
onload

在调用它时,具有指定ID的元素不存在,并且该行出现错误并停止脚本进一步运行

功能分配给onload

 window.onload = function () { CreateTimer(30); };

您可以立即调用
CreateTimer
,并将其返回值(
undefined
)分配给
onload

在调用它时,具有指定ID的元素不存在,并且该行出现错误并停止脚本进一步运行

功能分配给onload

 window.onload = function () { CreateTimer(30); };

这是一个时间问题。请注意,在发出警报时,页面是空白的,并且还请注意,如果您在发出警报后从控制台运行命令,则一切正常。您正在尝试修改尚未加载的元素。原因是onload设置不正确-您在正确的时间之前调用了CreateTimer

当你遇到这样的问题时,试着找出这条大线的哪一部分是问题将有所帮助。例如:

alert("Timer created:" + Time);
alert(document.getElementById('debug1'));
alert(document.getElementById('debug1').innerHTML);

另外,使用
console.log()
而不是
alert()
也会让您省去一些挫折感。

这是一个时间问题。请注意,在发出警报时,页面是空白的,并且还请注意,如果您在发出警报后从控制台运行命令,则一切正常。您正在尝试修改尚未加载的元素。原因是onload设置不正确-您在正确的时间之前调用了CreateTimer

当你遇到这样的问题时,试着找出这条大线的哪一部分是问题将有所帮助。例如:

alert("Timer created:" + Time);
alert(document.getElementById('debug1'));
alert(document.getElementById('debug1').innerHTML);

另外,使用
console.log()
而不是
alert()
也会让你省去一些挫折感。

哇,那太快了。我现在就试试。。。成功了!非常感谢你!我应该在这里问一下,但我喜欢自己通过阅读来解决这个问题。但在我挠头这么多小时后,你几秒钟就解决了。非常感谢。不,首先是正确的程序:)这样你才能真正学到东西。没有必要的领导才能提问的人永远不会超越平庸……如果你能帮忙,我有一个后续问题。为什么警报可以工作,但document.getElementById不能工作?onload不意味着等到所有东西都加载完毕后再做点什么吗?哎呀。。。我看到下面的回应!我同意你的第一个问题,第二个问题。你在努力寻找答案的过程中学到了很多,这就是我为什么要先尝试的原因。我已经17年多没有编程了!我在Commodore 64上掌握了6502汇编语言。这是我近20年来的第一个项目&规模巨大。有时我觉得我在我的头上。当我读到某些东西是如何工作的时候,我觉得很沮丧。。而且不是那样的!哈哈。你们都帮我解决了UTF-8混乱中一些非常令人困惑的问题,现在这个!非常感谢帮助这个老大脑学习新东西!:)@PerryCS-Onload确实意味着,但正如我在回答的第一行中所说,你实际上并没有使用它。哇,太快了。我现在就试试。。。成功了!非常感谢你!我应该在这里问一下,但我喜欢自己通过阅读来解决这个问题。但在我挠头这么多小时后,你几秒钟就解决了。非常感谢。不,首先是正确的程序:)这样你才能真正学到东西。没有必要的领导才能提问的人永远不会超越平庸……如果你能帮忙,我有一个后续问题。为什么警报可以工作,但document.getElementById不能工作?onload不意味着等到所有东西都加载完毕后再做点什么吗?哎呀。。。我看到下面的回应!我同意你的第一个问题,第二个问题。你在努力寻找答案的过程中学到了很多,这就是我为什么要先尝试的原因。我已经17年多没有编程了!我在Commodore 64上掌握了6502汇编语言。这是我近20年来的第一个项目&规模巨大。有时我觉得我在我的头上。当我读到某些东西是如何工作的时候,我觉得很沮丧。。而且不是那样的!哈哈。你们都帮我解决了UTF-8混乱中一些非常令人困惑的问题,现在这个!非常感谢帮助这个老大脑学习新东西!:)@PerryCS-Onload的意思是,但正如我在回答的第一行中所说,您实际上并没有使用它。谢谢!我的印象是onload已经准备好了一切。在试图弄明白这一点的过程中,我阅读了许多关于等待DOM就绪而不使用onload的文档。我也从未听说过console.log()-