Как перебрать эту таблицу html и получить данные из строк, последний столбец которых не пуст?

Я пытался получить эти данные, но массив выходит пустым:

function saveData() {
  var tableData = [];
  var table = document.getElementById("dtable");
  console.log(table)

  for (var i = 0; i < table.length; i++) {
    let tableCells = table.rows.item(i).cells;
    let cellLength = tableCells.length;

    for (let j = 0; j < cellLength; j++) {
      let cellVal = tableCells.item(j).innerHTML;
      tableData.push(cellVal)
    }
  }
  console.log(tableData)
  rows = JSON.stringify(tableData);
  google.script.run.formToSheets(rows);
}

Спасибо за любую помощь! enter image description here

Стилизация и валидация html-формы без использования JavaScript (только HTML/CSS)
Стилизация и валидация html-формы без использования JavaScript (только HTML/CSS)
Будучи разработчиком веб-приложений, легко впасть в заблуждение, считая, что приложение без JavaScript не имеет права на жизнь. Нам становится удобно...
Введение в технологический стек Twitch
Введение в технологический стек Twitch
В этой статье мы подробно рассмотрим стек Twitch, который подразделяется на следующий набор технологий:
8 полезных HTML-тегов, которые лучше использовать вместо <div>
8 полезных HTML-тегов, которые лучше использовать вместо <div>
Когда я только начинал изучать html, я использовал div для всего, это был один из первых тегов, которые я выучил, и казалось, что он работает в любой...
HTML5: API локального хранилища (Local Storage)
HTML5: API локального хранилища (Local Storage)
LocalStorage - это простой способ хранения данных в браузере пользователя.
Доступность HTML - программирование с инклюзивной перспективой
Доступность HTML - программирование с инклюзивной перспективой
Представьте, что вы хотите поехать на пляж. Представьте, что вы упорно трудились весь год и заслужили это. Прибыв на место, вы обнаруживаете, что...
Именование классов CSS: Конвенция именования BEM
Именование классов CSS: Конвенция именования BEM
Сопровождаемость кода, сама по себе, является пульсирующим эффектом нескольких факторов. Когда часть программного обеспечения читабельна, ясна,...
1
1
25
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

В вашем сценарии, как одна из нескольких возможных модификаций, как насчет следующей модификации?

От:

var tableData = [];
var table = document.getElementById("dtable");
console.log(table)

for (var i = 0; i < table.length; i++) {
  let tableCells = table.rows.item(i).cells;
  let cellLength = tableCells.length;

  for (let j = 0; j < cellLength; j++) {
    let cellVal = tableCells.item(j).innerHTML;
    tableData.push(cellVal)
  }
}
console.log(tableData)

К:

var table = document.getElementById("dtable");
console.log(table)

var [, ...tr] = table.querySelectorAll("tr");
var tableData = [...tr].map(r => {
  var td = r.querySelectorAll("td");
  return [...td].map((c, j) => j != 3 ? c.innerHTML : c.querySelectorAll("select")[0].value);
});
console.log(tableData)
  • В этой модификации из таблицы извлекаются строки таблицы. И ячейки таблицы извлекаются из строк таблицы. В случае раскрывающегося списка значение извлекается из раскрывающегося списка.

Примечание:

  • Когда эта модификация не была прямым решением вашей проблемы, я думаю, что, когда вы предоставите весь свой сценарий, это поможет правильно понять ваш вопрос.

@santosOnit Спасибо за ответ и тестирование. Я рад, что ваша проблема была решена. И тебе спасибо.

Tanaike 17.05.2022 03:41

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

Простая проверка паролей JavaScript не будет зацикливаться после первой итерации
Как удалить правое поле на панели навигации?
При нажатии на изображение должно отображаться соответствующее изображение в другом div с использованием только JavaScript.
TypeError: невозможно прочитать свойства неопределенного (чтение «addEventListener»)
Текст на изображении с эффектом виньетки CSS
Как переопределить глобальный стиль из дочернего компонента и изменить область изменения только для этого компонента в angular
Как исключить из формы, развернутой с помощью скрипта Google Apps, параметр, который достиг своего предела
Кнопка Удалить строку таблицы удаляет все последующие строки
Javascript: как использовать «глобальную переменную» для двух разных html-страниц?
Как не включать «нет» в электронное письмо в формате HTML, если пользователь не сделал выбор в раскрывающемся списке?