Первое и последнее значения в таблице html не распознаются

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

Я проверил с предупреждением, что вызывается его идентификационный номер, и это так, но он по-прежнему не входит в оператор if, хотя все остальные строки делают.

Также не вызывается последний элемент в таблице, и когда я увеличиваю длину таблицы, но при увеличении счетчика происходит ошибка. Переменная a начинается с 1, чтобы избежать заголовков столбцов. (Когда он равен 0, разницы нет). Как будто первая и последняя строка просто игнорируются.

          var warray = data.split(",");

          var count = document.getElementById('wtable').getElementsByTagName("tr").length;
          var table = document.getElementById('wtable');


           for(var i = 0; i < warray.length; i++){

                var waiting = warray[i].split("|");
                var check = true;
                for(var a = 1; a < count; a++){

                           var rowid = table.rows[a].cells[0].innerHTML;

                           if(rowid == waiting[0]){
                               alert("here");
                               var x = document.getElementById("wtable").rows[a].cells;
                               x[2].innerHTML = waiting[2];
                               check = false;
                               break;
                       }
                }
                // only need to add new row if item doesnt exist
                if(check){....

Чтобы показать свой код, я создаю таблицу ...

<table id="wtable" class="waiting-table" cellpadding="11"><tr>.   <th>Order ID</th><th>Customer</th><th>Vendor</th><th>Address</th>.   <th>Cart_ID</th><th>Cart</th><th>Checked</th></tr>

<?php while($row = mysqli_fetch_row($waiting)){

echo "<tr id=".$row[0].">";
echo '<td>',$row[0],'</td>';
echo '<td>',$row[1],'</td>';
echo '<td>',$row[4],'</td>';
echo '<td>',$row[8],'</td>';
echo '<td>',$row[2],'</td>';
echo '<td>',"items",'</td>';
?>
  <td>
    <button onclick='orderPacked("<?php echo $row[0]; ?>","<?php echo $row[2]; ?>","<?php echo $row[4]; ?>")'id="buttonpacked"  name="packed" >Packed</button>
   </td>
  </tr>
 <?php } ?>

</table>
var a = 0 возможно?
Alex K. 11.04.2018 13:26
1
1
78
2

Ответы 2

Попробуй поменять вторую на.

var a = 0; a <= count; a++

Он начинается с 1, чтобы заголовок не был замечен, когда он находится на 0.

Nic Parmee 11.04.2018 13:31

Я получаю эту ошибку с добавленным "<=" - TypeError: undefined не является объектом (оценка 'table.rows [a] .cells') в основном первая и последняя строка полностью игнорируются

Nic Parmee 11.04.2018 13:32

Я не очень хорошо разбираюсь в Javascript, но что произойдет, если вы измените var code = document.getElementById('wtable').rows.length; и запустите такой код?

Adi 11.04.2018 13:49

Нет дает мне одинаковую длину (количество) строк

Nic Parmee 11.04.2018 14:05
(...)
for(var a = 1; a < count; a++){
                       var rowid = table.rows[a].cells[0].innerHTML;
(...)

table.rows начинается с индекса 0. Вы читаете только индексы, начинающиеся с начального значения a, равного 1.

измените его на:

(...)
for(var a = 0; a < count; a++){
                       var rowid = table.rows[a].cells[0].innerHTML;
(...)

Другие вопросы по теме