javascript - 根据另一列和输入字段计算 html 列值
问题描述
如何根据来自另一列和输入字段的值将值插入 html 表列(使用 Javascript 或 jQuery)。
例如(见下面的代码),如果我115
在输入字段中输入数字,列advance
应该显示1
每个运动员的值,其中列second
中的数字低于输入字段中的数字,如果数字高于运动员的值在高级列中应该变成0
.
列数会有所不同,但列 seconds 中的值将始终具有类名“seconds”,列中的值将始终具有类名“advance”。
<table>
<tr>
<th>Athlete</th>
<th>Seconds</th>
<th>Advance</th>
</tr>
<tr>
<td>A.E.</td>
<td>120</td>
<td class="advance">.</td>
</tr>
<tr>
<td>G.F.</td>
<td>90</td>
<td class="advance">.</td>
</tr>
<tr>
<td>T.L</td>
<td>110</td>
<td class="advance">.</td>
</tr>
</table>
<input type="number">
<button id="btn">
Confirm
</button>
感谢您抽出宝贵时间
解决方案
好的,为了解决这个问题,我在您的号码输入中添加了一个 id;看这里:
<input id='number' type="number">
并且在创建每个运动员的行时,为每个运动员添加一个类“运动员数据”到“< tr >”。像这样:
<tr class='athlete-data'>
<td>G.F.</td>
<td>90</td>
<td class="advance">.</td>
</tr>
最后,这里是 Javascript
//Grab all the athlete rows by the class we added to the <tr>'s'
let athleteRows = document.getElementsByClassName('athlete-data');
//Listen for button click
document.getElementById('btn').addEventListener('click', ()=> {
let number = document.getElementById('number').value;
filterAthletes(number);
});
function filterAthletes(limit){
//Iterate over the athlete rows
for(let row of athleteRows){
//Get their time
let athleteTime = row.getElementsByTagName('td')[1].textContent;
//Compare them, and set the text content.
if (parseFloat(athleteTime) >= parseFloat(limit)){
row.getElementsByClassName('advance')[0].textContent = '1';
}
else {
row.getElementsByClassName('advance')[0].textContent = '0';
}
}
}
推荐阅读
- javascript - 如何使用 Node.js 和 Firebase 制作实时列表
- ssl - Traefik 2.0 TLS TCP 直通
- python - parquet int96时间戳通过python转换为日期时间/日期
- javascript - 使用 jQuery 从类中获取特定的用户数据
- node.js - 如何在 Node.js 中使用 RESTful API
- python - 如何将所有解释变量的多散点图拉到python中的响应变量
- google-apps-script - 如何防止gmail线程回来
- javascript - 在nodejs msnodesqlv8中未执行存储过程查询后的代码
- javascript - Konva 图层的放大镜
- typo3 - SaveToDatabase with MultiCheckbox in FORM:如何在 sys_category_record_mm 中保存值