我有一个由系统生成的大型(~800行)表,需要添加一个复选框,以便有人可以检查他们想要了解更多信息的行。我可以批量添加复选框列,但我不会单独为这些复选框添加值...所以我的问题:
如果我有这样的大表:
<table>
<tr>
<td><input type="checkbox"></td>
<td>ABCDEFG</td>
</tr>
<tr>
<td><input type="checkbox"></td>
<td>HIJKLMN</td>
</tr>
... etc...
</table>
我是否可以使用下一个<td>
中的文字将值附加到复选框?因此,如果有人点击第一个复选框,其值将设置为“ABCDEFG”?
很可能会点击几个复选框。是否最好在点击时分配值,或者等到提交被点击以循环选中分配值的复选框?
我担心桌子太大会引起一些问题。
答案 0 :(得分:6)
$('input[type="checkbox"]').on('change', function() {
if (this.checked) {
this.value = $(this).closest('td').next('td').text();
}else{
this.value = "";
}
});
答案 1 :(得分:0)
试试这个小提琴。我认为它会做你想做的事情:
$("#submit").click(function() {
var selected = "";
$("input[type=checkbox]").each(function() {
if ($(this).is(":checked")) {
selected += $(this).parent().siblings("td").text() + ",";
}
});
alert(selected);
});
基本上,我们在按下提交按钮时获取所有值,并构建逗号分隔的字符串。您可以更改每个函数的if语句中的内容,以便根据所选值执行任何操作。