Javascript 在谷歌文档中绘制某些单词-谷歌应用程序脚本
我有以下代码:Javascript 在谷歌文档中绘制某些单词-谷歌应用程序脚本,javascript,google-apps-script,google-drive-api,google-docs,google-apps,Javascript,Google Apps Script,Google Drive Api,Google Docs,Google Apps,我有以下代码: var textToHighlight = 'Normal'; var highLightStyle = {}; highLightStyle[DocumentApp.Attribute.FOREGROUND_COLOR] = '#FFC0CB'; var paras = doc.getParagraphs(); var textLocation = {}; for (i=0; i&
var textToHighlight = 'Normal';
var highLightStyle = {};
highLightStyle[DocumentApp.Attribute.FOREGROUND_COLOR] = '#FFC0CB';
var paras = doc.getParagraphs();
var textLocation = {};
for (i=0; i<paras.lenght; i++) {
textLocation = paras[i].findText(textToHighlight);
if (textLocation != null && textLocation.getStartOffset() != -1) {
textLocation.getElement().setAttributes(textLocation.getStartOffset(), textLocation.getEndOffsetInclusive(), highLightStyle);
}
}
但是上面的代码只画出它找到的第一个单词“Normal”,其余的保持中立
有人知道这两个代码都会发生什么吗?我很惊讶它会返回第一个代码。这一行的“长度”拼写错误:
for (i=0; i<paras.**lenght**; i++) {
for(i=0;i我很惊讶它返回了第一个值。这行的“length”拼写错误:
for (i=0; i<paras.**lenght**; i++) {
(i=0;i)的
有人知道这两种代码都会发生什么吗
代码1:
您输入了一个错误,lenght
应该是length
代码2:
见下面我的答案
说明:
您需要使用特定关键字迭代所有元素
要实现这一目标,您需要遵循以下步骤:
获取找到的第一个元素:
pinkElement=body.findText(searchWord);
检查是否存在带有searchWord
的元素
为此元素执行一些代码
指定一个新元素,该新元素是之前找到的下一个元素:
pinkElement=body.findText(searchWord,pinkElement);
重复步骤1-4,直到没有其他元素:
while(pinkElement!=null)
解决方案:
有人知道这两种代码都会发生什么吗
代码1:
您输入了一个错误,lenght
应该是length
代码2:
见下面我的答案
说明:
您需要使用特定关键字迭代所有元素
要实现这一目标,您需要遵循以下步骤:
获取找到的第一个元素:
pinkElement=body.findText(searchWord);
检查是否存在带有searchWord
的元素
为此元素执行一些代码
指定一个新元素,该新元素是之前找到的下一个元素:
pinkElement=body.findText(searchWord,pinkElement);
重复步骤1-4,直到没有其他元素:
while(pinkElement!=null)
解决方案:
哈哈哈谢谢克拉克!我没看到。当我改变时,它会起作用!好的!知道你的逻辑是正确的,这只是一个愚蠢的错误总是好的!:)哈哈哈谢谢克拉克!我没看到。当我改变时,它会起作用!好的!知道你的逻辑是正确的,这只是一个愚蠢的错误总是好的!:)它正确地工作了@Marios!但是在下面的答案中,我意识到我把lenght这个词拼错了!当我修复它时,代码也正常工作@拉斐尔:我完整地回答了:)我只是使用了第二个代码,因为它更清晰。非常感谢@Marios!我在我的代码中使用你的代码!:)它工作正常@Marios!但是在下面的答案中,我意识到我把lenght这个词拼错了!当我修复它时,代码也正常工作@拉斐尔:我完整地回答了:)我只是使用了第二个代码,因为它更清晰。非常感谢@Marios!我在我的代码中使用你的代码!:)
function myFunction() {
let doc = DocumentApp.getActiveDocument();
let body = doc.getBody();
let pinkColor = "#FFC0CB";
let searchWord = "Normal";
let pinkElement = body.findText(searchWord);
while (pinkElement != null) {
let elem = pinkElement.getElement().asText();
let t = elem.getText();
elem.setForegroundColor(t.indexOf(searchWord), t.indexOf('High')+3, pinkColor);
pinkElement = body.findText(searchWord, pinkElement);
}
}