javascript - 如何在运行时通过 JavaScript 将 HTML 表格数据放入选定的选项中
问题描述
我有一个包含两列的 HTML 表格,我想在向下钻取页面上过滤表格的数据,用户将使用 HTML 选择过滤数据,然后一旦他单击提交按钮,JavaScript 函数会将数据发送到下一页使用 GET/POST 请求。
我只是想知道如何在运行时使用 JavaScript 将数据插入到 HTML 表中的 HTML 选择选项中。请参阅代码以供参考。
<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body>
<select name="id">
<option selected="">Data for ID</option>
</select>
<select name="name">
<option selected="">Data for Name</option>
</select>
<input type="submit" name="" value="Submit">
<br>
<br>
<table border="2">
<tr>
<th>ID</th>
<th>Name</th>
</tr>
<tr>
<td>1</td>
<td>abc</td>
</tr>
<tr>
<td>2</td>
<td>dvc</td>
</tr>
<tr>
<td>3</td>
<td>nhy</td>
</tr>
<tr>
<td>4</td>
<td>wrw</td>
</tr>
</table>
</body>
</html>
解决方案
通过使用下面的普通 JAVASCRIPT 是您的用例的解决方案:
<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body>
<select name="id">
<option selected="">Data for ID</option>
</select>
<select name="name">
<option selected="">Data for Name</option>
</select>
<input type="submit" name="" value="Submit">
<br>
<br>
<table border="2">
<tr>
<th>ID</th>
<th>Name</th></tr>
<tr>
<td>1</td>
<td>abc</td>
</tr>
<tr>
<td>2</td>
<td>dvc</td>
</tr>
<tr>
<td>3</td>
<td>nhy</td>
</tr>
<tr>
<td>4</td>
<td>wrw</td>
</tr>
</table>
</body>
</html>
<script>
var callback = function() {
// Handler when the DOM is fully loaded
var el = document.querySelectorAll("tbody >tr");
el.forEach(function(elm) {
var cells = elm.querySelectorAll("td");
if (cells.length > 1) {
var id = cells[0].innerText;
var name = cells[1].innerText;
document.querySelector('select[name=id]').innerHTML += '<option value=' + id + '>' + id + '</option>';
document.querySelector('select[name=name]').innerHTML += '<option value=' + name + '>' + name + '</option>';
}
})
};
if (
document.readyState === "complete" ||
(document.readyState !== "loading" && !document.documentElement.doScroll)
) {
callback();
} else {
document.addEventListener("DOMContentLoaded", callback);
}
</script>
推荐阅读
- mysql - 如何确保以一定的时间间隔更新到数据库
- opencascade - 如何在 OpenCASCADE 上创建浮雕和雕刻文字
- react-native - 反应本机中的 TurboModuleRegistry.getEnforcing(...) 错误
- python - 用已经存在的 id 列替换编码器列表
- html - 无法从 rvest 中的 html_node 提取 href 链接
- vue.js - 使用 v-if 显示隐藏 div 导致按钮不触发
- material-ui - Lighthouse Aria-Label 错误——如何纠正?
- cookies - WKWebView cookie 同步
- python - 如何在 Python 中绘制双变量多项式函数
- websocket - 如何将 Traefik 配置在 Nginx 和 PHP-FPM WebSocket 服务器前面?