【发布时间】:2020-12-29 18:48:21
【问题描述】:
我正在尝试根据用户输入更改表格单元格的背景。
如果用户输入 3 小时,时间为 10。那么我需要更改表格单元格 7-8、8-9、9-10 的背景以显示此范围。
这里是 HTML:
<thead>
<tr>
<th id="car">Car</th>
<th id="7">7 - 8</th>
<th id="8">8 - 9</th>
<th id="9">9 - 10</th>
<th id="10">10 - 11</th>
<th id="11">11- 12</th>
<th id="12">12 -13</th>
<th id="13">13 - 14</th>
<th id="14">14 - 15</th>
<th id="15">15 - 16</th>
<th id="16">16 - 17</th>
<th id="exit_miles">Exit Miles</th>
</tr>
</thead>
<tr id="car-1-test">
<td id="car-1">Car 1</td>
<td id="car-1-7" class="charging not_charging">Test</td>
<td id="car-1-8" class="charging not_charging">Test</td>
<td id="car-1-9" class="charging not_charging">Test</td>
<td id="car-1-10" class="charging not_charging">Test</td>
<td id="car-1-11" class="charging not_charging">Test</td>
<td id="car-1-12" class="charging not_charging">Test</td>
<td id="car-1-13" class="charging not_charging">Test</td>
<td id="car-1-14" class="charging not_charging">Test</td>
<td id="car-1-15" class="charging not_charging">Test</td>
<td id="car-1-16" class="charging not_charging">Test</td>
<td id="car-1-exit-miles">60</td>
</tr>
到目前为止我所拥有的......
// Check how many hours are needed for charge
function checkHours(){
var lhours = $("#car-1-charge-needed").text();
var ltime = $("#car-1-lt")
$("#car-1-test > td:nth-child("+ ltime - lhours.val +")").css("background-colour", "blue");
}
// Generate time table
$('#generate-time-table').click(function() {
checkHours();
})
这里是完整代码的小提琴:https://jsfiddle.net/Coxy/bv5jct7n/6/
小提琴已更新。
为了澄清,用户输入的结果表明需要设置多少小时以及他们离开的时间。我需要在表格中显示这些时间在休假时间之前被排除在外。
EDIT** 更新了 JS 以显示正确的变量。谢谢安德烈亚斯。
我实际上认为这可能是错误的方法。我在想,如果我可以根据用户输入(充电所需的时间和离开的时间)将课程从不充电切换到充电,而不是尝试第 n 个孩子的方法,这可能会更好。我仍然不确定如何实现这一点,或者它是第 n 个孩子/类型是我将如何实现这一点。欢迎任何建议。
$(".generate").click(function() {
var lvalue = Number(document.getElementById('time-input').value);
var hoursneeded = document.getElementById('car-1-charge-needed').textContent;
var timeTd = $('table_id_2 td[id$="-' + lvalue + '"]'),
previousTds = timeTd.prevAll().slice(0, -1),
numberOfHours = hoursneeded;
$("table_id_2 td").removeClass("blocked");
previousTds.slice(0, numberOfHours)
.addClass("blocked");
console.log(hoursneeded);
});
现在更新代码我认为没有错误,但我仍然没有得到想要的结果。
【问题讨论】:
-
它的意思是从 lhours 中获取值(来自用户输入)并将其分配给具有该数值的 td 单元格。即用户输入 = 8,它从单元格编号 8 开始,然后从“需要的小时数”用户输入返回小时数。我可以看到这是不正确的重复。谢谢,我会修改的。
标签: jquery html-table css-selectors user-defined-functions