2014-03-19 105 views
0

我有一個由表組成的jQuery應用程序。該表有一個時間字段和一些數字字段。我想基本上每3秒增加一次數值。所以我想創建一個函數,我增加數字值並通過刷新函數調用它,每3秒自動刷新一次。刷新刷新表

所以基本上原來的信息是在3秒後如下

科比十點30 4 2

它應該是

科比10:03 31 5 4

這是我做的Fiddle

我無法做到這一點。我試圖做一個函數,我增加表值並調用該函數,因此

setInterval(updateFunction,3000);

但沒有運氣。我就是這麼想創建一個函數的。

var cell = $("#example"); 
var currentVal = parseInt(cell.text(), 10); 
cell.text(currentVal + 1); 

任何人都可以請提供一些建議。我對js和jquery很陌生,如果難以理解,我也可以澄清我的意思。

回答

2

這是一種方式。添加類需要更新的細胞:

<td>Lebron James</td> 
<td class="updateMeTime">08:00</td> 
<td class="updateMeInt">27</td> 
<td class="updateMeInt">11</td> 
<td class="updateMeInt">10</td> 

在這個例子中,類updateMeInt意味着它是一個簡單的整數,和updateMeTime意味着它是一個時間值。

那麼你的更新功能將通過與這些類和增量每個單元迭代:

function UpdateFunction(){ 
    $(".updateMeInt").each(function(index){ 
     var cur = parseInt($(this).text(), 10); 
     $(this).text(cur + 1);  
    }); 

    $(".updateMeTime").each(function(index){ 
     var cur = $(this).text().split(":");  
     var sec = parseInt(cur[1], 10);   
     var min = parseInt(cur[0], 10); 

     sec = sec + 3; 
     if (sec >= 60){ 
      sec = 0 
      min = min + 1; 
     } 
     $(this).text(pad(min) + ":" + pad(sec)); 

    }); 
} 

更新FIDDLE

+0

嗨,這是工作的罰款,但我只是注意到一件事我有一個搜索欄頂部和之前我使用你的代碼我可以搜索整數和名稱,但由於某種原因,這種刷新不讓我搜索任何int值,例如,如果科比布萊恩特30分和我在搜索中鍵入30,表明沒有結果。是否可以在刷新函數被調用時搜索它? – user1010101

+1

這與您正在使用的數據表插件有關。你應該看看它的API,看看你應該如何更新單元格,並保持過濾工作。你應該問這個插件的問題,以便熟悉插件的人可以幫助你... – ezanker

+0

是的,聽起來很不錯。我認爲過濾器只能處理我的初始值。我會去看看API。再次感謝。 – user1010101

1

嘗試在區間功能驗證碼:

$("#example > tbody tr").each(function(){ 
    var s = 0; //--- var for not increase 1st td --- 
    $("td",this).each(function(){ 
     var data = $(this).html(); 
     if(/^[0-9]+\.?[0-9]*$/.test(data)){ 
      $(this).html(++data); 
     } else { 
      if(s == 1) { 
       date = new Date(); 
       var h = date.getHours(); 
       var m = date.getMinutes(); 
       if(m < 10) {m = '0'+m;} 
       $(this).html(h+':'+m); 
      }; 
      s = 1; //--- after 1st td increase --- 

     } 
    }); 
}); 

JSFiddle