2013-05-31 98 views
0

我有一個錶行內的複選框的錶行的id獲得當複選框被選中

<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?

+0

據我可以看到你的代碼是不綁定到按鈕點擊。你如何期待它開火? – Ted

+0

您的JSFiddle在JS中有一個語法錯誤,並且不包含jQuery擴展。 – dKen

+0

這是一個錯誤,它應該在那裏 –

回答

5

試試這個

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

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

反正你的提琴丟失jQuery和也有一「)」失蹤(你把「結束註釋」中的錯行)

1

你的代碼是好的,可以工作。

Plcease在控制檯中運行$(':checkbox:checked')。它會返回 []嗎?

可能的原因:

  • 你忘了,包括jQuery的進入頁面。
  • 您有多個複選框並返回錯誤的複選框。
  • 你在JS的某個地方有一個錯誤,導致執行停止。
1

你可以這樣做:

JQuery的

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

JSFiddle

1
$('input:checkbox').click(function() { 
    if ($(this).is(':checked')) { 
     var id = $(this).closest('tr').attr('id'); 
     alert(id); 
    } 
}); 
2
$('input[type=checkbox]').change(function(){ 
     alert($(this).parent('tr').attr('id')); 

    }); 

    alert(closestTr); 
2

我想在你的jsfiddle你還沒有加入jQuery的支持。並進行了一些修改。 我已經完成了這些,我已經更新了jsfiddle。請檢查一下。

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

我已經給觸發按鈕點擊。希望這可以幫助你

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