我想从google doc中删除所有名称范围,但是当我使用以下代码删除它们时,文本和namedRanges被删除,它在每个namedRange的位置留下一个空段。
nameRanges.forEach(function (rangeEntry) {
var ele = rangeEntry.getRange().getRangeElements()[0];
var sOffset = ele.getStartOffset();
var eOffset = ele.getEndOffsetInclusive();
var txtObj = ele.getElement().asText();
txtObj.deleteText(sOffset, eOffset);
rangeEntry.remove();
}
我正在使用以下代码访问段落,并且它们的text属性作为空字符串返回。
body.getParagraphs().forEach( function (para, ind) {
console.log('para', para.editAsText().getText());
})
我如何删除nameRange,这样就不会留下任何痕迹? 谢谢
答案 0 :(得分:2)
如果我的理解是正确的,那么该修改如何?在此修改中,我使用了removeFromParent()
。请认为这只是几个答案之一。
var ele = rangeEntry.getRange().getRangeElements()[0]
中检索元素的父级。然后,removeFromParent()
删除了父对象。nameRanges.forEach(function (rangeEntry) {
var ele = rangeEntry.getRange().getRangeElements()[0];
var parent = ele.getElement().getParent(); // Added
parent.removeFromParent(); // Added
rangeEntry.remove();
});
clear()
代替removeFromParent()
时,我认为结果与您当前的脚本相同。如果我误解了您的问题,而这不是您想要的结果,我深表歉意。那时,您可以提供要使用的样本文档吗?由此,我想确认您的情况。当然,请从示例文档中删除您的个人信息。