2015-09-05 36 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