私はrulesObjectを呼び出すjavavascriptオブジェクトを作成しています。このアイデアは、スクリプトの最初の段階でmysqlデータベースから動的に生成される他のチェックボックスを有効/無効にするためにチェックする必要があるすべてのルールを含むjavascriptオブジェクトであることが考えられます。今私は何をする必要があるか動的に指定されたオブジェクトプロパティへのアクセス
rulesObject = {
chk533570 : ["533577", "503671", "503667", "604028", "503661"],
chk503928 : ["533577", "533578","503671", "503666", "533576", "503667", "324201", "503221", "604028", "503668", "533580", "503669", "533579", "533581", "503670"]
};
:今のところ、私はちょうどので、ここで私のオブジェクトは、現時点では次のようになります、私は私が探しているシナリオを作成する知っている二つの規則でそれをテストしていますそのオブジェクトから情報にアクセスします。簡単なアラート(rulesObject。chk533570)を実行すれば、完璧に動作します。私に必要なものを正確に提供します。しかし、私がしなければならないことは、以下を実行することによってちょうどクリックされたものに基づいて特定のルールにアクセスすることです。私は「533570」大切なチェックボックスをクリックしたのであれば、例えば、それは次を通過します:
$('input').click(function(){
if(this.checked) {
checkRules(this.value, 'checked');
} else {
checkRules(this.value, 'unchecked');
}
});
(もちろん、私はそこにjQueryを使用していますが、私はそうWebアプリケーション全体に使用しています)
私のcheckRules関数に移動しました。それはまだ初期段階にあるので、非常にシンプルです。私がちょうど選択したものの価値を警告したいだけです。繰り返しますが、私が警告(rulesObject。chk533570)をしても、関数内であっても正しい結果が得られますが、私が選択したものにアクセスする必要があるので、オブジェクトプロパティの先頭に 'chk' justselected値を追加します(この場合は533570に等しくなります)。ここで私はそれを行うことを試みた方法があります。
function checkRules(justselected, state) {
rulename= 'chk' + justselected;
currentrules = rulesObject.rulename;
alert(rulename);
alert(currentrules);
}
警告1:chk533570 警告2:未定義
function checkRules(justselected, state) {
rulename= 'chk' + justselected;
alert(rulesObject.rulename);
}
警告:不定
function checkRules(justselected, state) {
rulename= 'chk' + justselected;
alert(rulesObject + '.chk' + justselected);
}
警告:[オブジェクトオブジェクト] .chk533570
function checkRules(justselected, state) {
alert(rulesObject.chk533570);
}
アラート:533577,503671,503667,604028,503661
正しい結果が得られるように、その名前を正しく呼び出す方法はありますか?私もそこに 'chk'を持っていないようにしようとしましたが、javascriptオブジェクトは完全に数字のプロパティを好まなかったのです。
重複するhttp://stackoverflow.com/questions/9709130/javascript-object-using-to-retrieve-values/9709167 – jbabey