从 Google 表单中删除项目时出错
Error with deleting items from Google Form
在我的 Google 表单中,我有 5 个部分,5 个项目:每个部分一个项目,4 个列表项目和 1 个 CheckboxGrid 项目。使用此代码从项目中清除表单后:
function clearAll(form){
var items = form.getItems();
for (var i=0; i<items.length; i++) {
form.deleteItem(i);
}
}
我有一个错误"Cannot open item with index 5. Number of items available :5"
它删除了所有项目但没有触及部分。
也尝试了不同的删除方式,比如:
function clearForm(){
var items = form.getItems();
while(items.length > 0){
form.deleteItem(items.pop());
}
}
这导致错误 "Invalid form update request." 与 pop() 函数一致。它只删除了最后一项。
也许访问项目、部分存在一些问题?
错误发生是因为索引是基于 0(零)的,换句话说,在 5 个元素的集合中,最后一个元素的索引是 4。
另一方面,如果您要使用循环删除所有表单项,包括部分,则应向后迭代。
function clearAll(form){
var items = form.getItems();
for (var i=items.length-1; i>=0; i--) {
form.deleteItem(i);
}
}
相关
如果你使用删除计数器,那么我认为你可以这样做:
function clearAll(form){
var items=form.getItems();
var d=0;//deleted items counter
for (var i=0; i<items.length; i++) {
form.deleteItem(i-d++);
}
}
这也适用于电子表格中的行。这允许您在循环中正常递增。
在我的 Google 表单中,我有 5 个部分,5 个项目:每个部分一个项目,4 个列表项目和 1 个 CheckboxGrid 项目。使用此代码从项目中清除表单后:
function clearAll(form){
var items = form.getItems();
for (var i=0; i<items.length; i++) {
form.deleteItem(i);
}
}
我有一个错误"Cannot open item with index 5. Number of items available :5" 它删除了所有项目但没有触及部分。 也尝试了不同的删除方式,比如:
function clearForm(){
var items = form.getItems();
while(items.length > 0){
form.deleteItem(items.pop());
}
}
这导致错误 "Invalid form update request." 与 pop() 函数一致。它只删除了最后一项。 也许访问项目、部分存在一些问题?
错误发生是因为索引是基于 0(零)的,换句话说,在 5 个元素的集合中,最后一个元素的索引是 4。
另一方面,如果您要使用循环删除所有表单项,包括部分,则应向后迭代。
function clearAll(form){
var items = form.getItems();
for (var i=items.length-1; i>=0; i--) {
form.deleteItem(i);
}
}
相关
如果你使用删除计数器,那么我认为你可以这样做:
function clearAll(form){
var items=form.getItems();
var d=0;//deleted items counter
for (var i=0; i<items.length; i++) {
form.deleteItem(i-d++);
}
}
这也适用于电子表格中的行。这允许您在循环中正常递增。