簡體   English   中英

document.getElementById(“ someid')。innerHTML =“ HI”;對我不起作用

[英]document.getElementById(“someid').innerHTML = ”HI"; doesn't work for me

我不了解如何很好地操作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>

在timers.js中

function CreateTimer(Time)
{
  alert("Timer created:" + Time);
  document.getElementById('debug1').innerHTML = "WORKS";
  alert("We never get here.");
}

在signupForm.php中-SNIPPIT

<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文件,我在那里使用與上面完全相同的document.getElementById,它可以正常工作!!! 我不明白!

在validation.js中,我對DOM進行了大量修改,並且效果很好! 是否可行,因為當我通過跳到下一個字段來更改字段時, 這是一個SCOPE問題嗎? 如果有人不知道我在做什么錯,我會嘗試將我的validation.js切碎並粘貼在這里,但是它很大。 為什么一個功能起作用而另一個文件中的另一個功能不起作用?

立即調用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()也會為您節省一些挫敗感。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM