jQuery。每个问题

时间:2009-12-05 21:21:14

标签: jquery each

大脑挤压并需要帮助,

我有一个包含6行的表,可以隐藏或显示,具体取决于是否选中了复选框。这个.each例程适用于一个小问题 - 当选中最后一个复选框(val =“5”)并且你点击刷新按钮时,第6行(class =“hide5”)被隐藏。这仅发生在最后一个复选框上 - 选中的任何其他复选框都保持可见。

$(document).ready(function($) {
    $('input:checkbox').each(
        function(rowIndex){
            if($('#view'+rowIndex).is(':checked') == true){
                $('.hide'+rowIndex).show();
            }
            else if($('#view'+rowIndex).is(':checked') == false){
                $('.hide'+rowIndex).hide();
            }
        }
    );
    $('input:checkbox').click(function () {                             
        var row = this.value;
        $('.hide' + row).toggle();
    });
}); 

6 th 行的HTML源代码为:

<tr class="hide5">
  <td width="175" align="center" style="padding:1px 0px 11px 0px"><br />
    <span>Total</span><br />
    <span>&nbsp;</span><br />
  </td>
  <td width="175" align="center">
    <input class="auto" type="text" id="bwPound" size="18" alt="p8c3pvS" />
  </td>
  <td width="175" align="center">
    <input class="auto" type="text" id="bwPound" size="18" alt="p8c3pvS" />
  </td>
</tr> 

提前感谢您的帮助

Bob Knothe

2 个答案:

答案 0 :(得分:1)

试试这个:

$(document).ready(function($) {
    $('input:checkbox').each(function(rowIndex){
        var $row = $(this);
        if ($row.is(':checked')){
            $('.hide'+rowIndex).show();
        } else {
            $('.hide'+rowIndex).hide();
        }
    });
    $('input:checkbox').click(function () {                             
        var row = this.value;
        $('.hide' + row).toggle();
    });
});

答案 1 :(得分:1)

该复选框的ID为“View5”,但JS引用了'view'+rowIndexIDs are case sensitive