使用jQuery.each循环

时间:2013-08-02 21:04:50

标签: javascript jquery arrays

所以我正在一个网站上工作,其中一个主页面包含一个表格和按钮来控制表格中的选定行。表中的每一行都有一个带有+或a的按钮,具体取决于用户是否单击了它。它以+开头,然后在单击时将该行唯一的标识符添加到数组中。按钮的ID等于唯一标识符。

我希望表每10秒自动刷新一次,但是当我这样做时,它会将所有按钮重置为+,因为这就是HTML中的内容。

我试图让它根据具有以下代码的数组将已经选择的那些重置为minuses:

function refreshTable(){
  $('#tablefill').load('table.php', function(){
       setTimeout(refreshTable, 10000);
    });
    $.each(selected, function(index, value) {
       document.getElementById(value).innerHTML = '-';
    });
}

我对jQuery没有太多经验,所以我确定我只是错过了一些东西。如果我应该包含任何其他代码,请告诉我。

2 个答案:

答案 0 :(得分:1)

您的jQuery代码实际上对我来说没问题。我认为您的问题是您在调用服务器后立即执行.each,而不是在服务器返回后执行; .each应该在你上面定义的回调函数中,紧接在你的setTimeout调用之上或之下,即:

function refreshTable(){
  $('#tablefill').load('table.php', function(){
      $.each(selected, function(index, value) {
        document.getElementById(value).innerHTML = '-';
      });
      setTimeout(refreshTable, 10000);
  });
}

答案 1 :(得分:0)

selected.html('-');

应该可以正常工作,假设selected$('.yourClass');

之类的结果

在jQuery中,几乎每个方法都适用于集合以及单个项目。无需循环遍历项目。