javascript - 当单击事件生成行时,如何在选择选项中获取数组值?
问题描述
当单击事件生成行时,如何在选择选项中获取数组值?我试过了,该行已生成,但选项为空白。var 选项中的数组值。只需推送相同的数据 10 次。我是否以正确的方式使用该 forEach 循环?请帮忙。
$('#click').click(function() {
$("#table tbody tr").remove();
var r = 10;
var option = [];
for (var i = 1; i <= 10; i++) {
option.push("<option>selectme</option>");
}
console.log(option);
// for (var i = 1; i <= 10; i++) {
var td = "<tr><td>number</td><td>name</td><td><select>" +
option.forEach(function(e) { e; }); +
"</select></td></tr>";
$("#table tbody").append(td);
// }
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<table id="table" border="solid">
<thead>
<tr>
<td>s.no.</td>
<td>name</td>
<td>class</td>
</tr>
</thead>
<tbody>
<tr>
<td>2</td>
<td>name2</td>
<td>option</td>
</tr>
</tbody>
</table>
<button id="click">click</button>
解决方案
你可以使用forEach
,但你需要做的有点不同。首先,创建一个空select
元素,然后运行forEach
以创建新option
元素并将它们附加到select
.
$('#click').click(function(){
$("#table tbody tr").remove();
var r = 10;
var option = [];
for (var i = 1; i <= 10; i++) {
option.push("selectme");
}
var td = "<tr><td>number</td><td>name</td><td><select></select></td></tr>";
$("#table tbody").append(td);
const select = document.querySelector('select');
option.forEach(v => {
const o = document.createElement('option');
o.textContent = v;
select.appendChild(o);
});
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table id="table" border="solid">
<thead>
<tr>
<td>s.no.</td>
<td>name</td>
<td>class</td>
</tr>
</thead>
<tbody>
<tr>
<td>2</td>
<td>name2</td>
<td>option</td>
</tr>
</tbody>
</table>
<button id="click">click</button>
推荐阅读
- xquery - 如何在单行输出中获取 MarkLogic 中 XQuery 的输出?
- numpy - 如何摆脱contourplot contourf(平滑矩阵/二维数组)中的伪影?
- pandas - pandas groupby 并填补缺失的频率
- django - Azure 容器实例:从 Django+Nginx+Postgres 创建多容器组
- r - 通过循环从数据框中填充矩阵
- java - 有没有办法用另一种方法用一种方法对数组中的所有数字求和?
- php - Codeigniter 从控制器发送数据到视图
- python - 构建 TensorFlow 错误“找不到 bazel。请安装 bazel”
- php - 在php中查找两个时隙之间的记录
- ios - 使用 SinchRTC - iOS 13 向 CallKit 报告新来电