请原谅新手提出的这个基本问题。我在 google apps 脚本上收到了这个错误代码 -
子索引 (1) 必须小于子元素数量 (0)。 (第 86 行,文件“Code”)自从我更改了一些代码后。
代码中没有第 86 行,我运行的一项测试表明下面加粗的代码行就是问题所在。
提前致谢!
function getImageLinks(){
//create array of images to update (paragraph, index, URL, width, height)
var imgLocations = [
[78,1,'https://docs.google.com/spreadsheets/EDITED OUTimage',680,393],
// var doc = DocumentApp.openById('1NENe-GSyUDNLHwp84cKwamDlQbbIipaZ2i2GGFUOFr0'); //test
var doc = DocumentApp.openById('1mwwJBPdGPAdILZ9pfARqTAG5Gt9svPthqZ8RcCRS6xI'); //prod
var body = doc.getBody();
for(var intX=0;intX<imgLocations.length;intX++){
var newImage = UrlFetchApp.fetch(imgLocations[intX][2]);
var img = body.getChild(imgLocations[intX][0]).asParagraph().getChild(imgLocations[intX][1]);
var parent = img.getParent();
var paragraph = parent.asParagraph();
img.removeFromParent();
paragraph.insertInlineImage(imgLocations[intX][1],newImage);
**var updatedImage = body.getChild(imgLocations[intX][**0]).asParagraph().getChild(imgLocations[intX][1]);
updatedImage.asInlineImage().setWidth(imgLocations[intX][3]).setHeight(imgLocations[intX][4]);
}
}
首先,粗体在代码格式中不起作用。
其次,正如评论中提到的,你在这里有开括号
var imgLocations = [
[78,1,'https://docs.google.com/spreadsheets/EDITED OUTimage',680,393],
它应该在哪里
var imgLocations = [
[78,1,'https://docs.google.com/spreadsheets/EDITED OUTimage',680,393]]
请注意,您不仅错过了
]
,而且在结束之前还有 ,
,这表明您的 imgLocations 应该有超过 1 个条目。您的 for
循环只会运行一次,因为 imgLocations.lenght
等于 1
解决了这个问题,您遇到此问题且缺少括号的原因如下:
var img = body.getChild(imgLocations[intX][0]).asParagraph().getChild(imgLocations[intX][1]);
因为这将有 0 个孩子,并且您预计至少有 1 个孩子才能获得父母。