更新代码正常工作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)
尝试过类似的事情:
<td>
但由于$.each(teste, function(index, obj){
if($(obj).text() == "")
myRow.deleteCells(index);
});
没有&#34;重置&#34;对于图片中的每一行,我得到关于溢出行索引限制的错误。因为虽然第一行只有一个index
成员,但最后一行有5个,因为索引总是在增长++我得到了这个错误。我不知道如何解决它。
答案 0 :(得分:1)
因为我不太了解你的情况,所以我创建了两个函数
根据&#34; data-prof&#34;删除数据&#34; li&#34;的属性在&#34; td&#34;
删除表格的所有数据。
在我的意见中,如果你指定&#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.
});
});
}