2013-02-16 152 views
0

我有一个表格行,需要根据月份进行关闭。使用JavaScript更改样式属性

HTML:

<tr id="bottomrow" class="week" valign="top" style="display:none;"> 
     <td class="day" id="d36"> 
      <div class="daynumb" id="x36"></div> 
     </td> 
     <td class="day" id="d37"> 
      <div class="daynumb" id="x37"></div> 
     </td> 
     <td class="day" id="d38"> 
      <div class="daynumb" id="x38"></div> 
     </td> 
     <td class="day" id="d39"> 
      <div class="daynumb" id="x39"></div> 
     </td> 
     <td class="day" id="d40"> 
      <div class="daynumb" id="x40"></div> 
     </td> 
     <td class="day" id="d41"> 
      <div class="daynumb" id="x41"></div> 
     </td> 
     <td class="day" id="d42"> 
      <div class="daynumb" id="x42"></div> 
     </td> 
    </tr> 

我尝试使用document.getElementByID('bottomrow').style.display = "none";但它似乎并没有工作...

的JavaScript:

function february() { 

document.getElementById('bottomrow').style.display = "none"; 

var numbdays = 28, 
    offset = 5; 

for (var date = 1; date <= numbdays; date++) { 
    document.getElementById("x" + (date + offset)).innerHTML = date; 
} 
} 

页面加载后,该行仍然可见。我究竟做错了什么?

+0

你永远不会打电话给你的功能。把在html文档末尾 – 2013-02-16 23:24:33

+0

请查看:http://jsfiddle.net/ryfitzger227/eJxaK/ – 2013-02-16 23:26:55

+0

作品在小提琴中,看不到您的问题对不起。 – 2013-02-16 23:33:28

回答

0

函数是否在DOM准备好之前运行?它不能在尚不存在的元素上操作。

window.onload = function() 
{ 
    ... 
} 
+1

这里没有jQuery,所以没有'$(document).ready()'。 – Blender 2013-02-16 23:20:24

+0

您仍然可以绑定到文档的ready事件,并且您可能需要。另一种选择是在页面的最后添加你的JS。 – 2013-02-16 23:20:59

+0

把代码放在html下面,或者在加载html之类的函数后调用,例如body onload =“”或者smiliar – 2013-02-16 23:21:28

0

您应该正确处理页面的ready事件,因为DOM元素尚未加载到页面上。 jQuery抽象这个,但看看这篇文章如何做到这一点没有jQuery或其他库。您需要确保处理以下指南中所做的浏览器差异。

$(document).ready equivalent without jQuery

1

你做正确,除了getElementByID不是一个函数。它必须是getElementById。注意小写d

document.getElementById("bottomrow").style.display = "none"; 
+0

谢谢...不能相信我错过了。哈哈。 – 2013-02-16 23:32:32

+0

没问题! Javascript是挑剔的大声笑 – 2013-02-16 23:36:04