JavaScript中的document.getElementById问题

时间:2011-01-20 20:20:21

标签: javascript css html

我正在尝试显示某个div,具体取决于使用JavaScript的星期几。我有一个id为“星期四”的div。在JavaScript代码中,我尝试从文档中提取该ID,但没有任何反应。这就是我所拥有的:

这是div,而单独的样式表将其显示为“none”。

<div id="thu">Thursday</div>

以下是同一页面的head部分中的JavaScript。

var date = new Date();
var dayNum = date.getDay();
switch (dayNum)
{
case 4:
document.getElementById('thu').style.display='block';   
break;

它不会显示div。我也尝试将元素分配给这样的变量......

var block = document.getElementById("thu");
document.write(block);

...但它写了“NULL”。

我错过了什么吗?任何帮助都会很棒。

4 个答案:

答案 0 :(得分:3)

在HTML写入页面之前代码是否正在运行?也就是说,<script>之前的<div id="thu">区块是?这似乎是最可能的问题。

答案 1 :(得分:2)

您可能在DOM完全加载之前尝试访问该元素。将调用放在正文Onload事件中,或者更好的是,看看JQuery - 所有这些处理的方式非常优雅。

答案 2 :(得分:1)

如果找不到元素,第二个块将写null。如果发现你会得到[object HTMLDivElement]

的回复

您需要等到DOM准备就绪或窗口已完全加载,然后才能与它进行交互。为此,您需要以这种格式包装代码:

window.onload = function() {
    // put your code in here
};

答案 3 :(得分:0)

当我在}之后添加右括号break时,它对我有效。

<div id="thu" style="display:none">Thursday</div>
<script type="text/javascript">
var date = new Date();
var dayNum = date.getDay();
switch (dayNum)
{
  case 4:
    document.getElementById('thu').style.display='block';   
  break;
}
</script>