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);
       }
    }