Как мы можем удалить действительно пустые абзацы из Google Документа? Этот код удалит любые абзацы, содержащие изображения, hr и т. Д. Не можете понять, как проверить, действительно ли абзац пуст? getText() и editAsText() ничего не дает.Скрипт Google Docs Apps - как удалить действительно пустые абзацы
var doc = DocumentApp.getActiveDocument();
var body = doc.getBody();
var docParagraphs = doc.getBody().getParagraphs();
for (var i = 0; i < docParagraphs.length; i++) {
if (docParagraph[i].getText() === '') {
docParagraphs[i].removeFromParent();
}
}
Я знаю, что есть тема, связанная с ~ аналогичной проблемой, но не то же самое. How to find and remove blank paragraphs in a Google Document with Google Apps Script?
UPD: правильный ответ:
var doc = DocumentApp.getActiveDocument();
var body = doc.getBody();
for (var i = 0; i < doc.getBody().getParagraphs().length; i++) {
if (docParagraph[i].getText() === '') {
if (docParagraph_i.getNumChildren() == 0 && i < (docParagraphs.length - 1)) {
docParagraph[i].removeFromParent();
}
}
}
Я изменил для выражения слишком ограничить I током элементов подсчитывать, не хранится в переменной. Поскольку элементы удаляются (например, в другой реализации, например), будет ошибка, когда никакие абзацы, кроме цикла, не захотят их получить.
&& i < (...)
поскольку последний абзац не может быть удален и выдает сообщение об ошибке.
Я попытался .getNumChildren() раньше, и я попытался .getChild(). GetType() до нескольких раз не повезло, но ваш ответ сказал мне снова проверить. Я сделал паузу после того, как задал вопрос, и теперь с ясным умом обнаружил, что я использовал .getNumChildren() не для абзаца, а для первого возможного его дочернего элемента (по .getChild()) и не понял, почему он выдает ошибку даже в. GetChild(). Первый такой абзац был действительно пустым ... Thanx! – Bowman