如何选中下一个表的行,单击一个复选框

时间:2012-01-12 16:42:17

标签: jquery html-table css-selectors row

这里是HTML:

<tr>
    <td>
        Customer Reviews
    </td>
    <td>
        <input type="checkbox" name="p_reviews" /> (checkbox that trigger action)
    </td>
</tr>
<tr> (row to select)
    <td>
        How many reviews do you want to display?
    </td>
    <td>
    ...
    </td>
</tr>

这里是javascript:

$("form[name='myform'] input[name='p_reviews']").click(function() {
if ($(this).is(':checked')){
    $(this).closest('tr').next().show();
} else{
    $(this).closest('tr').next().hide();
}
});

这不起作用。有提示吗?

编辑:对不起,伙计们,是的,它正在运作。只是HTML双引号丢失了!

2 个答案:

答案 0 :(得分:3)

$('form[name="myform"] input[name="p_reviews"]').click(function() {
    if ($(this).is(':checked')){
        $(this).closest('tr').next('tr').show();
    } else{
        $(this).closest('tr').next('tr').hide();
    }
});

答案 1 :(得分:3)

确保在文档就绪时运行该代码。而且你也可以使用this.checked。试试这个

$(function(){
  $("form[name='myform'] input[name='p_reviews']").click(function() {
     if (this.checked){
         $(this).closest('tr').next().show();
     } else{
         $(this).closest('tr').next().hide();
     }
  });
});

或者你可以使用更简单的切换。

    $(function(){
      $("form[name='myform'] input[name='p_reviews']").click(function() {
         $(this).closest('tr').next().toggle(this.checked);
      });
    });