Показать сообщение отдельно
  #1 (permalink)  
Старый 09.04.2018, 09:15
Профессор
Отправить личное сообщение для Artur_Hopf Посмотреть профиль Найти все сообщения от Artur_Hopf
 
Регистрация: 13.03.2018
Сообщений: 278

Работа с таблицами
Добрый день. У меня есть таблица вида:
<table>
    <thead>
       <tr>
       <td bgcolor="#b7b7b7">№</td>
       <td bgcolor="#c6c6c6">Обитание</td>
       <td bgcolor="#c6c6c6">Вид</td>
       <td bgcolor="#b7b7b7">Цвет</td>
       <td bgcolor="#c6c6c6">Количество</td>
       </tr>
     </thead>
     <tbody id="table_1"></tbody>
     <tbody id="table_2"></tbody>
</table>
<script type="text/javascript">
  var tr_1 = "", tr_2 = "", tr_3 = "";
  var arr = [{arr1:"Зайка", arr2:"беляк", arr3:"3 штуки"}, {arr1:"Волчёк", arr2:"серый", arr3:"1 штука"}, {arr1:"Медвежек", arr2:"бурый", arr3:"1 штука"}];
    tr_1 += '<tr>' +
         '<td bgcolor="#b7b7b7">' + '1' + '</td>' +
         '<td bgcolor="#c6c6c6">' + 'Лесок' + '</td>' + 
         '<td bgcolor="#b7b7b7">' + 'Зверьки ' + '</td>' + 
         '<td bgcolor="#c6c6c6" colspan="2">' + ' ' + '</td>' + 
           '</tr>';
document.getElementById("table_1").innerHTML = tr_1;
   for (i = 0; i < arr.length; i++){
                        tr_2 += '<tr>' +
                        '<td bgcolor="#b7b7b7">' + '' + '</td>' +  
                        '<td bgcolor="#b7b7b7">' + '' + '</td>' +
                        '<td bgcolor="#b7b7b7">' + arr[i].arr1 + '</td>' +
                        '<td bgcolor="#c6c6c6">' + arr[i].arr2 + '</td>' +
                        '<td bgcolor="#b7b7b7">' + arr[i].arr3 + '</td>' +
                        '</tr>';
    };
 document.getElementById("table_2").innerHTML = tr_2;
</script>

Можно ли привести это к такому виду:
<table>
            <thead>
                <tr>
                    <td bgcolor="#b7b7b7">№</td>
                    <td bgcolor="#c6c6c6">Обитание</td>
                    <td bgcolor="#c6c6c6">Вид</td>
                    <td bgcolor="#b7b7b7">Цвет</td>
                    <td bgcolor="#c6c6c6">Количество</td>
                </tr>
            </thead>
            <tbody id="table_1"></tbody>
            <tbody id="table_3"></tbody>
</table>
<script type="text/javascript">
            var tr_1, tr_2, tr_3 = "";
            var arr = [{arr1:"Зайка", arr2:"беляк", arr3:"3 штуки"}, {arr1:"Волчёк", arr2:"серый", arr3:"1 штука"}, {arr1:"Медвежек", arr2:"бурый", arr3:"1 штука"}];
            tr_3 += '<tr>' +
                        '<td bgcolor="#b7b7b7" rowspan="4">' + '1' + '</td>' +
                        '<td bgcolor="#c6c6c6" rowspan="4">' + 'Лесок' + '</td>' + 
                        '<td bgcolor="#b7b7b7">' + 'Зверьки ' + '</td>' + 
                        '<td bgcolor="#c6c6c6" colspan="2">' + ' ' + '</td>' + 
                        '</tr>'+
                        '<tr>' +
                        '<td bgcolor="#b7b7b7">' + 'Зайка' + '</td>' + 
                        '<td bgcolor="#c6c6c6">' + 'беляк' + '</td>' + 
                        '<td bgcolor="#c6c6c6">' + '3 штуки' + '</td>' + 
                        '</tr>'+
                        '<tr>' +
                        '<td bgcolor="#b7b7b7">' + 'Волчёк' + '</td>' + 
                        '<td bgcolor="#c6c6c6">' + 'серый' + '</td>' + 
                        '<td bgcolor="#c6c6c6">' + '1 штука' + '</td>' + 
                        '</tr>'+
                        '<tr>' +
                        '<td bgcolor="#b7b7b7">' + 'Медвежек' + '</td>' + 
                        '<td bgcolor="#c6c6c6">' + 'бурый' + '</td>' + 
                        '<td bgcolor="#c6c6c6">' + '1 штука' + '</td>' + 
                        '</tr>';
document.getElementById("table_3").innerHTML = tr_3;
</script>

Только в массиве arr может быть множество наименований, то есть rowspan = arr.length. У меня не получилось, таблицы в массиве съезжают и получается такой вот вид:
<table>
    <thead>
       <tr>
       <td bgcolor="#b7b7b7">№</td>
       <td bgcolor="#c6c6c6">Обитание</td>
       <td bgcolor="#c6c6c6">Вид</td>
       <td bgcolor="#b7b7b7">Цвет</td>
       <td bgcolor="#c6c6c6">Количество</td>
       </tr>
     </thead>
     <tbody id="table_1"></tbody>
     <tbody id="table_2"></tbody>
</table>
<script type="text/javascript">
  var tr_1 = "", tr_2 = "", tr_3 = "";
  var arr = [{arr1:"Зайка", arr2:"беляк", arr3:"3 штуки"}, {arr1:"Волчёк", arr2:"серый", arr3:"1 штука"}, {arr1:"Медвежек", arr2:"бурый", arr3:"1 штука"}];
    tr_1 += '<tr>' +
         '<td bgcolor="#b7b7b7">' + '1' + '</td>' +
         '<td bgcolor="#c6c6c6">' + 'Лесок' + '</td>' + 
         '<td bgcolor="#b7b7b7">' + 'Зверьки ' + '</td>' + 
         '<td bgcolor="#c6c6c6" colspan="2">' + ' ' + '</td>' + 
           '</tr>';
document.getElementById("table_1").innerHTML = tr_1;
    for (i = 0; i < arr.length; i++){
                        tr_2 += '<tr>' +
                        '<td bgcolor="#b7b7b7" rowspan ="'+arr.length+'">' + '' + '</td>' +  
                        '<td bgcolor="#b7b7b7" rowspan ="'+arr.length+'">' + '' + '</td>' +
                        '<td bgcolor="#b7b7b7">' + arr[i].arr1 + '</td>' +
                        '<td bgcolor="#c6c6c6">' + arr[i].arr2 + '</td>' +
                        '<td bgcolor="#b7b7b7">' + arr[i].arr3 + '</td>' +
                        '</tr>';
     };
document.getElementById("table_2").innerHTML = tr_2;
</script>

Не знаю откуда между строк берется undefined, у меня не выходит

Последний раз редактировалось Artur_Hopf, 09.04.2018 в 09:44.
Ответить с цитированием