【发布时间】:2015-09-03 12:13:06
【问题描述】:
我似乎只能在 JQuery 中找到这个问题的答案,我真的很想要一个纯 JS 的解决方案。
我有一个从解析的 JSON 文件构建的动态生成的表。我为每一行添加了一个复选框。我的问题是,我是否还必须为每个单元格生成唯一的 ID 或类?如何返回仅包含所选行数据的变量?
var watchLog = new XMLHttpRequest();
var rowChecked;
watchLog.onreadystatechange = function () {
if(watchLog.readyState === 4) {
var status = JSON.parse(watchLog.responseText);
var watchLogCell = '';
for (var i = 0; i < status.length; i += 1) {
watchLogCell += '<tr>';
watchLogCell += '<th scope="row" class="rowHeader"><input type="checkbox" name="selectRow' + i + '"
onclick="function rowData(){if(this.checked){rowChecked = ' + status[i]["Load ID"] + '; return console.log(rowChecked);};">';
watchLogCell += '<td>' + status[i]["Load ID"] + '</td>';
watchLogCell += '<td>' + status[i]["Carrier Name"] + '</td>';
watchLogCell += '<td>' + status[i]["Original PU Date"] + '</td>';
watchLogCell += '<td>' + status[i]["Current PU Date"] + '</td>';
watchLogCell += '<td>' + status[i]["Vendor Name"] + '</td>';
watchLogCell += '<td>' + status[i]["Original DO Date"] + '</td>';
watchLogCell += '<td>' + status[i]["Current DO Date"] + '</td>';
watchLogCell += '<td>' + status[i]["Load Status"] + '</td>';
watchLogCell += '<td>' + status[i]["Truck Status"] + '</td>';
watchLogCell += '<td>' + status[i]["DA First"] + '</td>';
watchLogCell += '<td>' + status[i]["PO Number"] + '</td>';
watchLogCell += '<td>' + status[i]["Buyer No"] + '</td>';
watchLogCell += '<td>' + status[i]["Comments"] + '</td>'
watchLogCell += '</tr>';
}
document.getElementById('tableBody').innerHTML = watchLogCell;
}
};
watchLog.open('GET', 'watchlogic.json');
watchLog.send();
【问题讨论】:
-
你要返回什么样的数据
-
我只需要一个函数来返回所选行中的任何数据。因此,如果我想从它们中组成一个字符串,我可以编写负载 ID、运营商名称以及该行中的任何其他信息。
-
数据中的唯一值是什么...是
load id -
输入有一个 parentNode 属性,它是它所在的单元格。该单元格有一个 parentNode 属性,它是它所在的行,所以有行。
标签: javascript forms select checkbox tabular