2015-09-05 59 views
0

更新代码工作Here动态地从表

删除tableDatas我有填充教师的学科,有一个表:一周中的一天,它的时间,当然它也有纪律。
现在我需要删除这些项目。

表:

<table id="prof-table"> 
    <tbody><tr> 
     <th>HORÁRIO</th> 
     <th data-dia="mon">Monday</th> 
     <th data-dia="tue">Tuesday</th> 
     <th data-dia="wed">Wednesday</th> 
     <th data-dia="thu">Thursday</th> 
     <th data-dia="fri">Friday</th>     
    </tr> 
    <tr> 
     <td>08:30 ~ 10:30</td> 
     <td><ol><li data-id="6" data-prof="4">Calculo A</li></ol></td> 
    </tr> 
    <tr> 
     <td>10:30 ~ 12:30</td> 
     td></td><td><ol><li data-id="2" data-prof="4">Lab II</li></ol></td> 
    </tr> 
    <tr> 
     <td>14:30 ~ 16:30</td> 
    </tr> 
    <tr> 
     <td>16:30 ~ 18:30</td> 
    </tr> 
    <tr> 
     <td>18:30 ~ 20:30</td> 
     <td></td><td></td><td></td><td></td><td><ol><li data-id="5" data-prof="4">Estatistica</li></ol></td> 
    </tr> 
    <tr> 
     <td>20:30 ~ 21:30</td> 
    </tr> 
    <tr> 
     <td>21:30 ~ 23:30</td> 
    </tr> 
</tbody></table> 

我所做的到目前为止是获得来自行<td>,但我不知道如何使用它,试图用.each()从JQuery的,但我只是不能做。

的Javascript:

var myRow = document.getElementById("prof-table").rows[range.index + 1]; 
var test = $(myRow.getElementsByTagName('td')).not(':first-child');//Skip the first td because its the time period of the discipline. 
console.log(teste); 

现在,如果您检查console.log()这是所示:
正如你所看到的,有三条线。每行/ obj的行数都是<td>
我需要做的是循环每一行。此外我需要重置每个循环的索引。 EX:在与图像的第一行交互时,我的索引从0变为1.然后,当开始第二行时,我需要从0开始索引,直到4(因为它具有5个元素td)

console.log()

想是这样:

$.each(teste, function(index, obj){ 
    if($(obj).text() == "") 
     myRow.deleteCells(index);        
}); 

但随着index犯规“复位”每个在画面的线条,我得到错误有关四溢行索引LIMITE。因为虽然第一行只有一个<td>成员,但最后一行有5个,因为索引总是增长++,所以我得到该错误。我不知道如何解决这个问题。

+0

var为试验和控制台的睾丸中请 – guradio

+0

可以你创建一个问题的演示 - http://jsfiddle.net/arunpjohny/br1svwhc/3/ –

+0

@皮卡只是misstyped人,对此感到遗憾。这是同一个变量。 – PlayHardGoPro

回答

1

因为我不明白你的情况很好,我创建了两个函数

  1. 要根据“数据教授”的“TD”

  2. 里面的“礼”的属性中删除数据删除表格的所有数据。

在我看来,如果你给“td”而不是“li”分配“data-prof”值,它会提高性能。

希望它的帮助。

功能基础上删除“数据教授”属性数据:

function resetTableData(dataProf) { 
     // Get cell list by data-prof 
     var $cellList = $("#prof-table").find("li[data-prof = " + dataProf + "]").closest("td"); 

     $cellList.each(function(){ 
      $(this).html(""); //Remove inner HTML of cells. 
     }); 
    } 

函数删除所有单元格的数据:

function resetTableData() { 
    // Get row list 
    var $rowList = $("#prof-table").find("tr").not(":first"); // First row is the header, don't need to select. 

    // Loop row list and get cell list of each 
    $rowList.each(function(){ 
     // Cell list 
     var $cellList = $(this).find("td").not(":first"); // First column is time period, don't delete it. 

     // Loop cell list and delete content 
     $cellList.each(function() { 
      $(this).html(""); //Remove inner HTML of cells. 
     }); 
    }); 
} 
+0

对不起,不太清楚。正如你所看到的,我有多位教授和他们的学科。打开菜单时,我已经能够将自己的学科抛到桌子上了。现在我需要做的是在关闭教授菜单的那一刻从桌面上删除这些纪律。问题是,在关闭菜单时,我不能删除特定教授的学科。 – PlayHardGoPro