刷新/重新加载表时,不能连接td中的某些行

时间:2014-06-11 10:09:05

标签: javascript jquery setinterval

在网页中,我每分钟刷新/重新加载div,其中包含文本文件中的内容。这部分代码正在运行。

问题是,在表格中,当我在第一列中有几行具有相同的内容时,我需要连接它。

我想要的例子:

table displayed correctly

我在表数据重新加载后的示例:

table not displayed correctly

这里的代码是为了每分钟重新加载我的表/ div:

 $(document).ready(function() {
        $.ajaxSetup({ cache: false }); 
            setInterval(function() {
                    $('#datatable-1_wrapper').load('bodytest.txt');

                      //part of code that worked when i load the entire page, but not work in this setInterval method
                      var names = {}, td, cname, p;
                      $('#t1').find('tr').each(function(){
                        if((td = $(this).find('td').get(0)) && (cname = td.className)){
                          var cnames = cname.split(' ');
                          names[cnames[0]] = names[cnames[0]]? names[cnames[0]] + 1 : 1;
                        } 
                      });
                      for (p in names){
                        if(names[p] > 1){
                          $('.' + p + ':gt(0)').remove();
                          $('.' + p).attr('rowspan', names[p]);
                        }
                     }

        }, 10000);  
});

你能解释一下为什么在加载页面而不是刷新方法时,连接一个td中的行的代码部分是有效的吗?

由于

1 个答案:

答案 0 :(得分:2)

在这里猜测,但看起来你的代码运行得太快了;请考虑一下:

$('#datatable-1_wrapper').load('bodytest.txt', function() {
    // loaded, now do the rest of your code
});

一旦加载了包装器,就会调用内部函数。