javascript - 通过单击复选框动态更改表格中的文本
问题描述
我有一个 JSON 格式的数据,并将其转换为 HTML table
。False
现在,True
如果我选中复选框,我想将文本从更改为。我怎样才能做到这一点?
下面是创建 HTML 表格的代码:
$.each(result, function (index, value) {
var Data = "<tr>" +
"<td class='' id='stdID' >" + value.StudentID + "</td>" +
"<td class='' id='stdRol'>" + value.RollNo + "</td>" +
"<td class='' id='stdName'>" + value.FirstName + "</td>" +
"<td class='cbx' value='1'><input type='checkbox' id='cc"+index+"'><span id='checkbox-value'> False</span></td>" +
"</tr>";
SetData.append(Data);
这是这样的结果:输出
解决方案
为了实现您的要求,您需要使用委托的事件处理程序,因为您在页面加载后动态附加行,以挂钩到change
复选框的事件。span
然后你可以根据checked
属性设置兄弟元素的文本。像这样的东西:
$('table').on('change', ':checkbox', function() {
$(this).next('span').text(this.checked);
});
span.checkbox-value { text-transform: capitalize; }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<table>
<tr>
<td class="stdID">value.StudentID</td>
<td class="stdRol">value.RollNo</td>
<td class="stdName">value.FirstName</td>
<td class="cbx" value="1">
<input type="checkbox" id="cc1">
<span class="checkbox-value">False</span>
</td>
</tr>
<tr>
<td class="stdID">value.StudentID</td>
<td class="stdRol">value.RollNo</td>
<td class="stdName">value.FirstName</td>
<td class="cbx" value="1">
<input type="checkbox" id="cc2">
<span class="checkbox-value">False</span>
</td>
</tr>
</table>
您应该注意,您的循环正在创建多个具有相同的元素id
,这是无效的 HTML。在上面的示例中,我将它们改为类。
推荐阅读
- python - 从文档中了解 PyTorch Bernoulli 分布
- powershell - 压缩存档并保留相对路径
- azure - 适用于 O365 和 IaaS 的 Azure Expressroute
- html - Angular 嵌套 CSS Div 表对齐问题
- python - 无法让程序正确迭代(TypeError: 'NoneType' object is not iterable)
- firebase - Firebase 电子邮件说我的实时数据库有不安全的规则
- objective-c - 查看是否下载了另一个应用程序 Xcode Objective-C
- assembly - avr 组装。获取反向和数组
- serialization - 如何在 Serde 中使用 EnumAccess?
- jenkins - 有没有办法在 Jenkins 中为非管理员用户提供脚本批准访问权限?