2011-09-19 64 views
1

這是我的表:jQuery的清潔HTML表格

 <tr class=stuff> 
      <td id=id></td> 
      <td id=city_id></td> 
      <td id=temp></td> 
      <td id=date></td> 
     </tr> 

這是我的javascript:

<script> 
    $(document).ready(function() { // waits when document is ready 
     $('.data').change(function() { // when dropbox value changes do this 
      getWeather(); // here I tried inserting table clearing code 
     }); 
    }); 

    function getWeather() { 
     $.getJSON('getTemperature/' + $('.data option:selected').val(), null, function(data) { // JSON request 
      $("#id").text(data.id); // changes fields accordingly 
      $("#city_id").text(data.city_id); 
      $("#temp").text(data.temperature); 
      $("#date").text(data.date); 
     }); 
    } 
</script> 

在下拉菜單中的每個項目沒有從服務器響應,所以我想它來清除表就在做出新的JSON請求之前。所以當JSON返回數據時,數據會相應地更新,但是當JSON沒有返回時,所有的表都將是空的。

當JSON沒有檢索到數據時,舊數據仍然保留在表中。

我嘗試使用$('.stuff').remove()$('.stuff').clean(),但使用起來之後才getWeather();再後來我是不是能夠把信息進我從JSON收到表。它只是不工作了。

隨時問任何問題。

+0

嘗試是否正在觸發更改事件。 –

+0

是的,因爲getWeather()是。 – Jaanus

回答

3

試試這個

$('.stuff td').text(""); 
getWeather(); 
+0

哇,大聲笑,這工作,多麼容易..我想知道爲什麼.remove()沒有工作。 – Jaanus

+2

@Jaanus:'remove()'起作用,但是它從DOM中刪除了整個'',並且因爲你沒有重新創建它,所有後續的函數調用失敗。 – Tomalak

0

取決於有多少這類的,你會在你的網站做的事情,你可能想看看KnockoutJS的,它是專爲動態顯示不斷變化的數據,包括自動隱藏部分。