2016-05-22 2 views
0

Я проектирую расположение сидений автобуса с помощью jquery. И я сделал это правильно.Пропустить некоторые элементы в массиве через jquery

Я использую массив с номерами сидений, и я получаю макет места, что я хочу. Это мой кодирования (здесь «.bus стол» является класс таблицы):

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

Это мои результаты: this is my seat layout output

Теперь проблема заключается в 3-й строке вы можете увидеть только некоторые галочки. Потому что в этих местах в автобусе нет мест. Таким образом, я хочу удалить эти флажки, что означает, что в массиве (3-я строка) я оставил некоторые пробелы, в соответствии с этими пробелами я тоже не хочу отмечать флажки. Я не знаю, как это сделать. Пожалуйста, помогите мне решить это дело.

(Извинения I за мой английский)

ответ

0

Добавить if заявление внутри for цикла:

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

Примечание заявление else, в противном случае он сломает ваш макет таблицы

+0

Woww it работает нормально. Это то, что я хочу, спасибо vitor !!! – Thanoo

+0

У меня есть еще одна проблема. это расположение места для бронирования автобусов, поэтому нам нужно отключить зарезервированные места. Поэтому у меня есть массив, называемый 'book_ids = ['24', '48', '51']; 'Теперь, как сделать этот блок пронумерованных мест отключенным? Пожалуйста, предложите мне решение – Thanoo

0

Вы можете пропустить эти места с помощью continue, как показано ниже:

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

он также работает, но расположение шины сворачивается .. я хочу, чтобы «51» пронумеровало сиденье, должно быть на правой стороне .. с вашим ответом, что сиденье плавает вправо. Во всяком случае Спасибо за ваш ответ Кирилл – Thanoo