2011-04-29 47 views
0

我在隱藏和顯示行的代碼中遇到問題,但它不工作。當我評論第二循環的代碼,然後它非常好,但是當我添加第二循環,然後再次麻煩。這是我的代碼。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> 

在此先感謝。

+1

您可以使用較短的定義:$('form:checkbox:not(:checked)')和jQuery('form:checkbox:checked')而不是$(「form input [type = checkbox]:not(:勾選)「)和$(」表單輸入[類型=複選框] [選中]「)。 – CoolEsh 2011-04-29 08:09:08

+0

什麼是HTML? – 2011-04-29 08:09:24

+0

@CoolEsh ...感謝它的工作。:) – 2011-04-29 08:56:00

回答

0

替換此

$( 「形式 輸入[類型=複選框] [選中]」)。每個(

$(」表格 input [type = checkbox]:checked「)。(

+0

感謝Phelios它工作:)。抱歉回覆晚了。你能告訴我兩條線的區別嗎? – 2011-04-29 08:55:15

+0

''[檢查]'vs':檢查'。 :檢查是jQuery中的一個詞,因此[checked]實際上是無效的。 []用於屬性搜索。 – Sufendy 2011-04-29 09:02:19

+0

@ Phelios ..謝謝。 – 2011-04-29 09:12:26

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(); 
      } 
     }); 
    }); 
});