0

我有一个由系统生成的大型(约 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'?

很可能会单击几个复选框。是在点击时分配值,还是等到提交被点击循环通过复选框分配值?

我担心桌子太大会引起一些问题。

4

2 回答 2

6
$('input[type="checkbox"]').on('change', function() {
    if (this.checked) {
        this.value = $(this).closest('td').next('td').text();
    }else{
        this.value = "";
    }
});
于 2013-04-29T19:21:44.433 回答
0

试试这个小提琴。我认为它会做你想要的:

http://jsfiddle.net/yFJsk/

$("#submit").click(function() {
    var selected = "";
    $("input[type=checkbox]").each(function() {
        if ($(this).is(":checked")) {
            selected += $(this).parent().siblings("td").text() + ",";
        }
    });
    alert(selected);
});

基本上,当按下提交按钮并构建它们的逗号分隔字符串时,我们将获取所有值。您可以更改每个函数的 if 语句中的内容,以使用所选值执行您想要的任何操作。

于 2013-04-29T19:33:33.503 回答