从表中动态删除tableDatas

时间:2015-09-05 03:57:18

标签: javascript jquery html

更新代码正常工作Here

我有一个填充了教师学科的表格,其中包括:星期几和它的时间段,当然它也有学科。 现在我需要删除这些项目。

表:

NSTextView

我到目前为止所做的是从行中获取<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> 但我不知道如何使用它,尝试使用JQuery中的<td>但我不能这样做。

Javascript:

.each()

现在,如果您检查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); 这是显示的内容:
如您所见,有三条线。每行/ obj都具有行中console.log()的确切数量 我需要做的是遍历每一行。此外,我需要重置每个循环的索引 EX:在与图像的第一行交互时,我的索引从0到1.然后当开始第二行时,我需要再次从0开始索引,直到4(因为它有5个元素td)

console.log()

尝试过类似的事情:

<td>

但由于$.each(teste, function(index, obj){ if($(obj).text() == "") myRow.deleteCells(index); }); 没有&#34;重置&#34;对于图片中的每一行,我得到关于溢出行索引限制的错误。因为虽然第一行只有一个index成员,但最后一行有5个,因为索引总是在增长++我得到了这个错误。我不知道如何解决它。

1 个答案:

答案 0 :(得分:1)

因为我不太了解你的情况,所以我创建了两个函数

  1. 根据&#34; data-prof&#34;删除数据&#34; li&#34;的属性在&#34; td&#34;

  2. 删除表格的所有数据。

  3. 在我的意见中,如果你指定&#34; data-prof&#34;对&#34; td&#34;的价值而不是&#34; li&#34;,它会提升绩效。

    希望有所帮助。

    基于&#34; data-prof&#34;删除数据的功能属性:

        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.
            });
        });
    }