Javascript 使用jQuery.each循环

Javascript 使用jQuery.each循环,javascript,jquery,arrays,Javascript,Jquery,Arrays,因此,我在一个网站上工作,该网站有一个主页,其中包含一个表和控制表中选定行的按钮。表中的每一行都有一个带有+或-的按钮,具体取决于用户是否单击了该按钮。它以+开头,然后单击时将该行唯一的标识符添加到数组中。按钮的ID等于唯一标识符 我希望表格每10秒自动刷新一次,但当我这样做时,它会将所有按钮重置为+,因为这是HTML中的内容 我试图让它根据数组将已选择的值重置为负数,代码如下: function refreshTable(){ $('#tablefill').load('table.php

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

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

我试图让它根据数组将已选择的值重置为负数,代码如下:

function refreshTable(){
  $('#tablefill').load('table.php', function(){
       setTimeout(refreshTable, 10000);
    });
    $.each(selected, function(index, value) {
       document.getElementById(value).innerHTML = '-';
    });
}
我对jQuery不是很有经验,所以我肯定我错过了一些东西。让我知道我是否应该包括任何其他代码

selected.html('-');
假设所选的
$('.yourClass')之类的结果,应该可以正常工作


在jQuery中,几乎每个方法都对集合和单个项起作用。不需要在项目上循环。

我觉得您的jQuery代码实际上还可以。我认为您的问题是,您在调用服务器后立即执行您的;.each应该位于上面定义的回调函数中,位于setTimeout调用的正上方或正下方,即:

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

如果可以
$('#'+值).html(…)
,则传递什么作为所选的
?为什么
document.getElementById(value).innerHTML
?所选的是我当前所选行的数组。这些值是我提到的唯一标识符。值等于按钮的ID。如果数组是行数组,
value
将是每行,而不是唯一标识符。请澄清。对不起,我用错了词。”“selected”是一个数组,其值是每个按钮的唯一id。例如:选中[0]=1234,按钮ID为1234。然后选择[1]=12345,表id下一行的按钮为12345。对不起,如果这让人困惑的话。我不知道该怎么解释。谢谢你的解释。效果很好。非常感谢!