Google Docs Apps 脚本 - 如何删除真正空的段落
Google Docs Apps script - how to remove really empty paragraphs
我们如何从 Google 文档中真正删除 空段落?
此代码将删除任何包含图像、hr 等的段落。无法理解如何检查段落是否真的为空?
getText() and editAsText() 对此一无所获。
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();
}
}
我知道有一些话题与~类似的问题有关,但不一样。
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 < (...)
因为最后一段无法删除并引发错误。
您需要检查段落中的 children
paragraph.getNumChildren() //returns the number of children
我们如何从 Google 文档中真正删除 空段落? 此代码将删除任何包含图像、hr 等的段落。无法理解如何检查段落是否真的为空? getText() and editAsText() 对此一无所获。
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();
}
}
我知道有一些话题与~类似的问题有关,但不一样。
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 < (...)
因为最后一段无法删除并引发错误。
您需要检查段落中的 children
paragraph.getNumChildren() //returns the number of children