我在以下代码中出错,我找不到原因......
使用UiApp我在ListBox
for loop
这样的内容
var critGlist = app.createListBox().setName('critGlist'+n).setId('critGlist'+n).addChangeHandler(refreshGHandler).addChangeHandler(cHandlerG).setTag(listItem[n]);
我添加了一个TAG以便能够在处理函数中检索一个值,因为当我向这个列表添加项目时,我这样做:
for(var c=0;c<listItem[n].length;++c){
critGlist.addItem(listItem[n][c],c);// the returned value is c, the value shown is listItem[n][c]
}
然后在我的处理函数中,我检索值c
,它是数组元素的索引listItem[n]
由于我将此数组的字符串化值存储为标记,因此我必须首先检索标记,然后使用索引获取所需的值...
这就是问题所在!
我尝试了以下3个代码:
var idx = Number(e.parameter['critGlist'+c]);// this works and I get the index
var item = e.parameter.critGlist0_tag.split(',')[idx];// this also works for a fixed index (0 here) but I need to use it in a for loop so I tried the code below
var item = e.parameter['critGlist'+c]_tag.split(',')[idx];// this generates an syntax error
// error message :"Signe ; manquant avant l'instruction. (ligne 129, fichier "calculatrice Global")"
// which means : missing ; before statement (line 129...
我错过了一些明显的东西吗?我该怎么写不一样?
显然,这是不被接受的下划线......但我怎么能不使用它呢?
好吧,我有一些其他的可能性来获得我想要的结果(例如使用隐藏的小部件或者其他一些临时存储,即使让listBox返回值而不是索引)但是我仍然想知道为什么这种语法错了......
我不是要求使用不同的代码(前面提到过很多其他方法),只是解释了这段代码中的错误以及 #!##å »ÛÁØ 下划线;)
答案 0 :(得分:1)
您需要将整个属性放在括号内,如下所示
var item = e.parameter['critGlist'+c+'_tag'].split(',')[idx];// this generates an syntax error