2016-05-22 5 views
0

Ich entwerfe ein Bussitz-Layout mit jquery. Und ich habe es auch richtig gemacht.Überspringe einige Elemente in einem Array durch jquery

Ich benutze ein Array mit Sitznummern und ich bekomme das Sitzlayout, was ich will. Dies ist meine Codierung (hier ‚.bus-Tabelle‘ ist eine Tabelle Klasse):

var row = Array(),i=0, j=0; 

    row = [ 
      ['1','5','9','13','17','21','25','29','33','37','41','45','49'], 
      ['2','6','10','14','18','22','26','30','34','38','42','46','50'], 
      ['','','','','','','','','','','','','51'], 
      ['3','7','11','15','19','23','27','31','35','39','43','47','52'], 
      ['4','8','12','16','20','24','28','32','36','40','44','48','53'] 
     ]; 

    $.each(row, function(index, value) { 
     $('.bus-table').append('<tr>'); 
      while(j<index+1) { 
       for(i=0; i<value.length; i++) { 
        $('.bus-table tr:nth-child('+ (index+1) +')').append(
         '<td seatno="'+ row[j][i] +'">' + row[j][i] + '<input type="checkbox"/></td>'); 
       } 
       j++;         
      } 
    }); 

Dies ist meine Ergebnisse: this is my seat layout output

Jetzt ist das Problem in der 3. Zeile ist nur ein paar Kontrollkästchen sehen. Denn in diesen Bereichen gibt es keine Sitze im Bus. Also, ich möchte diese Checkboxen entfernen, was bedeutet, dass ich im Array (3. Zeile) einige Lücken gelassen habe, nach diesen Leerzeichen möchte ich auch die Checkboxen nicht. Ich weiß nicht, wie ich das machen soll. Bitte helfen Sie mir, diesen Fall zu lösen.

(I entschuldige mich für mein Englisch)

Antwort

0

schreiben if Anweisung innerhalb der for Schleife:

for(i=0; i<value.length; i++) { 
    if (row[j][i] !== '') { 
     $('.bus-table tr:nth-child('+ (index+1) +')').append(
      '<td seatno="'+ row[j][i] +'">' + row[j][i] + '<input type="checkbox"/></td>');   
    } 
    else { 
     $('.bus-table tr:nth-child('+ (index+1) +')').append('<td></td>'); 
    } 
} 

Hinweis die else Anweisung, sonst wird es Ihr Tabellenlayout

brechen
+0

Woww it funktioniert gut. Das ist, was ich will danke vitor !!! – Thanoo

+0

Ich habe ein anderes Problem. Dies ist eine Sitzplatzbelegung für Busse, daher müssen wir die gebuchten Plätze deaktivieren. Deshalb habe ich ein Array namens 'booked_ids = ['24', '48', '51']; 'Jetzt, wie man diese Block der nummerierten Sitze herstellt, um zu sperren ?? Bitte schlage mir eine Lösung vor – Thanoo

0

Sie diese Orte überspringen können mit continue wie unten dargestellt:

for(i=0; i<value.length; i++) { 
        if (row[j][i] == ""){ 
         '<td seatno="'+ row[j][i] +'">' + row[j][i] + '</td>'; 
         continue;//for blank don't make checkbox elements 
        } 

        $('.bus-table tr:nth-child('+ (index+1) +')').append(
         '<td seatno="'+ row[j][i] +'">' + row[j][i] + '<input type="checkbox"/></td>'); 
       } 
+1

es funktioniert auch, aber das Bus-Layout kollabiert .. ich will '51' nummeriert Sitz auf der rechten Seite sein .. mit Ihrer Antwort, dass der Sitz auf der rechten Seite schwebt .. Wie auch immer, danke für Ihre Antwort Cyril – Thanoo

Verwandte Themen