我有這樣造成了一定的對象:JavaScript對象調用不工作
var classes = {
login: {
form: {
wrapper: 'content-login',
cls: 'login-form',
fields: 'login-fields'
},
username: {
wrapper: 'username-wrapper',
label: 'user-img',
input: 'username'
},
password: {
wrapper: 'password-wrapper',
label: 'pass-img',
input: 'password'
},
button: {
wrapper: 'login-wrapper',
proceed: 'login'
},
toogle: {
trigger: {
wrapper: 'toogle-button',
button: 'toogle'
},
buttons: {
wrapper: 'toogle-buttons',
twitter: 'twitter-login',
register: 'register',
recover: 'recover-password'
}
}
},
register: {
form: {
wrapper: 'content-register',
cls: 'register-form',
fields: 'register-fields'
},
username: {
wrapper: 'username-wrapper',
label: 'username-label',
input: 'username'
},
email: {
wrapper: 'email-wrapper',
label: 'email-label',
input: 'email'
},
password: {
wrapper: 'password-wrapper',
label: 'password-label',
input: 'password'
},
confirm: {
wrapper: 'confirm-wrapper',
label: 'confirm-label',
input: 'confirm'
},
captcha: {
wrapper: 'captcha-wrapper',
label: 'captcha-label',
input: 'captcha'
},
button: {
wrapper: 'register-wrapper',
message: 'message-handling',
proceed: 'register'
},
back: {
wrapper: 'back-button',
button: 'back'
}
},
recover: {
form: {
wrapper: 'content-recover',
cls: 'recover-form',
fields: 'recover-fields'
},
email: {
wrapper: 'email-wrapper',
label: 'email-label',
input: 'email'
},
button: {
wrapper: 'recover-wrapper',
proceed: 'recover'
},
back: {
wrapper: 'back-button',
button: 'back'
}
},
reset: {
form: {
wrapper: 'content-reset',
cls: 'reset-form',
fields: 'reset-fields'
},
email: {
wrapper: 'email-wrapper',
label: 'email-label',
input: 'email'
},
authcode: {
wrapper: 'authcode-wrapper',
label: 'authcode-label',
input: 'authcode'
},
password: {
wrapper: 'password-wrapper',
label: 'password-label',
input: 'password'
},
confirm: {
wrapper: 'confirm-wrapper',
label: 'confirm-label',
input: 'confirm'
},
button: {
wrapper: 'proceed-wrapper',
message: 'message-handling',
proceed: 'proceed'
},
back: {
wrapper: 'back-button',
button: 'back'
}
},
success: {
wrapper: 'after-login',
message: 'row-one',
buttons: {
wrapper: 'row-two',
cancel: 'cancel',
proceed: 'continue'
}
},
lockdown: {
wrapper: 'system-lockdown',
message: 'row-one',
buttons: {
wrapper: 'row-two',
back: 'back'
}
}
}
而且我試圖調用某些關鍵是這樣的:
classes[login.form.wrapper];
但它不工作這樣一來,只有這樣的:
classes.login.form.wrapper;
或者這樣:
classes['login'];
誰能告訴我,爲什麼它不喜歡這個工作:
classes[login.form.wrapper];
而且我可以把它這樣的工作嗎?因爲我在某處看過這種方法,但我不知道它是否與我的相同。
是的,我發現我不能,因爲我嘗試用'try {...} catch {...}'調試,我看到它給了我一個ReferenceError,但是,沒有辦法讓那工作?因爲我有超過500行代碼需要修改才能正常工作? – Roland 2012-01-16 11:33:41
@Roland - 查看我的編輯。你可以用適當的屬性創建一個'login'對象,但這非常混亂。我會建議重構你的代碼! – 2012-01-16 11:36:26
你的意思是做'classes ['login'] ['form'] ['wrapper']'。那麼,如果是這樣的話,這意味着我將不得不經歷所有這些: – Roland 2012-01-16 11:37:35