在jquery中删除和显示行的问题

时间:2011-04-29 07:59:00

标签: jquery

我在隐藏和显示行的代码中遇到问题但是它无效。当我评论第二循环的代码然后它完全没问题,但当我添加第二循环然后又麻烦。这是我的代码。

<script>


    $("#btnClick").click(function(){

        $("form input[type=checkbox]:not(:checked)").each(
        function(){
                var checkBoxID = $(this).attr('id');

                //alert("checkBoxID"+" "+checkBoxID);
                $("table td").each(function(){

                    if(checkBoxID==$(this).attr('id')){
                    //alert($(this).attr('id'));
                        $(this).hide();
                    }
                });
        });

        $("form input[type=checkbox][checked]").each(
        function(){
                var checkBoxID = $(this).attr('id');

                //alert("checkBoxID"+" "+checkBoxID);
                $("table td").each(function(){

                    if(checkBoxID==$(this).attr('id')){
                    //alert($(this).attr('id'));
                        $(this).show();
                    }
                });
        });
    });

</script>

先谢谢。

2 个答案:

答案 0 :(得分:0)

实际发生的是在$ .each循环中,当你引用$(this)时它实际上正在检查td,因为你正在使用$(“table td”)。

实际上......第二次看起来你可能使用相同的ID作为复选框而td隐藏了它?

问题:用这个替换最初的每个函数:

$("form input[type=checkbox]").not(":checked").each(//..

$("#btnClick").click( function(){ 
   $("form input[type=checkbox]:not(:checked)").each( function(){ 
     var checkBoxID = $(this).attr('id'); 
     //alert("checkBoxID"+" "+checkBoxID); 
     $("table td").each(function(){ 
        if(checkBoxID==$(this).attr('id')){ 
          //alert($(this).attr('id')); 
          $(this).hide(); 
        } 
     }); 
   }); 
   $("form input[type=checkbox][checked]").each( function(){ 
      var checkBoxID = $(this).attr('id'); 
      //alert("checkBoxID"+" "+checkBoxID); 
      $("table td").each(function(){ 
         if(checkBoxID==$(this).attr('id')){ 
            //alert($(this).attr('id')); 
            $(this).show(); 
          }  
      }); 
    }); 
}); 

答案 1 :(得分:0)

替换此

  

$(“形式   输入[类型=复选框] [选中]“)。每个(

  

$(“形式   输入[类型=复选框]:检查“)每个(