2010-05-09 5 views
3

J'ai écrit comme ceci. Après la soumission, la boucle de clic ne s'exécute pas. Mais j'ai vu la valeur sont là, mais la longueur de tableau montre «0». (S'il vous plaît voir la photo). Pourquoi ça ne va pas en boucle? et $ ('# myVisibleRows'). val (idsString); devenir «vide».La longueur du tableau est zéro dans jQuery

$(document).ready(function() { 

     $('tr[@class^=RegText]').hide().children('td'); 

     var list_Visible_Ids = []; 
     var idsString, idsArray; 
     alert($('#myVisibleRows').val()); 
     idsString = $('#myVisibleRows').val(); 
     idsArray = idsString.split(','); 
     $.each(idsArray, function() { 
      if (this != "") { 
       $('#' + this).siblings(('.RegText').toggle(true)); 
       window['list_Visible_Ids'][this] = 1; 
      } 
     }); 
     $('tr.subCategory1') 
     .css("cursor", "pointer") 
     .attr("title", "Click to expand/collapse") 
     .click(function() { 
      //this = $(this); 
      $(this).siblings('.RegText').toggle(); 

      list_Visible_Ids[$(this).attr('id')] = $(this).css('display') != 'none' ? 1 : null; 
      alert(list_Visible_Ids[$(this).attr('id')]) 
     }); 
     $('#form1').submit(function() { 

      idsString = ''; 
      $.each(list_Visible_Ids, function(key, val) { 
       alert(val); 
       if (val) { 

        idsString += (idsString != '' ? ',' : '') + key; 
       } 
      }); 
      $('#myVisibleRows').val(idsString);     
      form.submit(); 
     }); 
    }); 

alt text

+0

fenêtre ['list_Visible_Ids'] ?? Ceci est affecté dans un environnement différent –

+0

Que se passe-t-il lorsque vous le déclarez comme un objet? 'var list_Visible_Ids = {};', c'est ainsi que vous y accédez actuellement. –

Répondre

1

enfin il me fonctionne comme ça.

for (var index in list_Visible_Ids) { 
       idsString += (idsString != '' ? ',' : '') + index; 
      } 
0

.each $ est conçu pour les paires clé énumérant/valeur dans les objets, pas de tableaux - comme Nick Craver a laissé entendre.

Questions connexes