2013-02-16 172 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