0

我在表格行中有一个复选框

<tr id="1">
<td><input type="checkbox" /></td>
<td>lorem</td>
<td>ipsum</td>
<td>css</td>
</tr>

我想在选中复选框时获取 id

我试过这个

var closestTr = $(':checkbox:checked').closest('tr').attr('id');

alert(closestTr);

我也试过这个http://jsfiddle.net/AbfJk/3/

为什么它没有得到id?

4

6 回答 6

5

试试这个

$("#thechecked").click(function(){
    var closestTr = $(':checkbox:checked').closest('tr').attr('id');
    alert(closestTr);
});

工作小提琴:http: //jsfiddle.net/AbfJk/7/

无论如何,您的小提琴缺少 jquery 并且还缺少“)”(您将“结束注释”放在错误的行中)

于 2013-05-31T08:54:24.973 回答
2
 $('input[type=checkbox]').change(function(){
      alert($(this).parent('tr').attr('id'));

   });

    alert(closestTr);
于 2013-05-31T08:57:40.560 回答
2

我认为在您的 jsfiddle 中您没有添加 jquery 支持。并且有一些修改。我已经完成了这些,并且我已经更新了 jsfiddle。请检查一下。

http://jsfiddle.net/AbfJk/10/

我已经触发了按钮点击。希望这可以帮助你

(function ($) {
        $('#thechecked').click(function () {
            var closestTr = $(':checkbox:checked').closest('tr').attr('id');
            alert(closestTr);
        });
    })(jQuery);
于 2013-05-31T08:59:21.847 回答
1

您的代码很好并且有效。

请在控制台中运行 $(':checkbox:checked')。它返回 [​] 吗?

可能的原因:

  • 您忘记将 jquery 包含到页面中。
  • 您有多个复选框并返回了错误的复选框。
  • 您在 JS 中的某个地方出现错误,导致执行停止。
于 2013-05-31T08:53:22.570 回答
1

你可以这样做:

查询

$("input[type='checkbox']").on("click", function () {
    if ($(this).is(':checked')) {
        var id = $(this).closest('tr').attr('id');
        alert(id);
    }
});

JSFiddle

于 2013-05-31T08:54:33.893 回答
1
$('input:checkbox').click(function () {
   if ($(this).is(':checked')) {
      var id = $(this).closest('tr').attr('id');
      alert(id);
   }
});
于 2013-05-31T08:56:39.583 回答