0

我是 JQuery 的新手,我遇到了麻烦。我想从有复选框的表格行中读取特定的单元格值。我有一个处理复选框选中事件的事件。这是我的代码:

$("#businesses input:checkbox").change(function (
        var $this = $(this);
        if ($this.is(":checked")) {

            //Here I want to read a value from a column in a row where is the checkbox

        } else {
            //Here I want to read a value from a column in a row where is the checkbox 
        }
});

我有一张名为“businesses”的表格,它有这种格式

<table id="businesses">
<tr>
  <th>Select Value</th>

  <th>Value</th>
</tr>
<tr>
  <td><input type="checkbox" class="selectedService" title="Seleccionar" /></td>
  <td>125</td> 
</tr>  
<tr>
  <td><input type="checkbox" class="selectedService" title="Seleccionar" /></td>
  <td>126</td> 
</tr>
</table>

我想要做的是,当我选择一个复选框时,获取其行的值字段。

如果我按下第一个复选框,我想得到 125。

谢谢!!!

4

4 回答 4

1

从您的复选框(this在事件处理函数中)开始,您需要向上到达包含<td>元素,到达下一个<td>元素,然后获取其文本:

$('#businesses input:checkbox').change(function(e) {
    if(this.checked) {
        var value = parseInt($(this).closest('td').next('td').text(), 10);
        // above will convert it from a string to an integer
    }
    else {
        // same as above? Seems redundant
    }
});
于 2013-01-31T16:25:48.523 回答
0

您可以通过以下方式访问它:

$this.parent().next().text();
于 2013-01-31T16:27:58.697 回答
0

父母的使用siblings()

$this.closest('td').siblings().text();

如果这不是唯一的,其他<td> siblings()人会返回所有其余的,所以使用适当的选择器来过滤它们。

于 2013-01-31T16:26:07.097 回答
0

尝试这个...

$("#businesses input:checkbox").on ('change', function (e)
        if ($(this).is(":checked")) {
            $( e.target ).closest("td").text();
        } else {
            //Here I want to read a value from a column in a row where is the checkbox 
        }
});

问候。

于 2013-01-31T16:34:06.733 回答