var Obj = {
StateValues: ['AL','AK','AL','AK','AZ','AR','CA','CO','CT','DE','FL','GA','HI','ID','IL','IN','IA',
'KS','KY','LA','ME','MD','MA','MI','MN','MS','MO','MT','NE','NV','NH','NJ','NM','NY','NC','ND',
'OH','OK','OR','PA','RI','SC','SD','TN','TX','UT','VT','VA','WA','WV','WI','WY'],
getItemRow: function(itemValue) {
var myPosition=-1
for (i=0;i<this.StateValues.length;i++) {
if(this.StateValues[i]==itemValue) {
myPosition = i;
break;
}
}
return myPosition;
}
}
这段代码出了什么问题。我正在宣布正确的方式。在我的对象中添加数组后,问题就开始了。
答案 0 :(得分:3)
你错误地使用了this
。它指的是window
(全局对象)。请改为:
var Obj = {
StateValues: ['AL','AK','AL','AK','AZ','AR','CA','CO','CT','DE','FL','GA','HI','ID','IL','IN','IA',
'KS','KY','LA','ME','MD','MA','MI','MN','MS','MO','MT','NE','NV','NH','NJ','NM','NY','NC','ND',
'OH','OK','OR','PA','RI','SC','SD','TN','TX','UT','VT','VA','WA','WV','WI','WY'],
getItemRow: function(itemValue) {
var myPosition=-1
for (i=0;i<Obj.StateValues.length;i++) {
if(Obj.StateValues[i]==itemValue) {
myPosition = i;
break;
}
}
return myPosition;
}
}
答案 1 :(得分:2)
最后你的分号丢失了。
进行此更改后,声明语法会在jslint.com上签出(至少当我禁用检查杂乱的空格等时)。
但是,请不要忘记使用i
关键字声明var
并撰写Obj
而不是this
。
在不知道所谓的“问题”的情况下,我们无法进一步发表评论。