私は次のことを達成しようとしています:
this.inputs[options.el.find('form').attr('class')] = {};
this.inputs[options.el.find('form').attr('class')][options.elements[x].selector] = false;
ただし、構文エラーなしで上記を実行することはできません!
このオブジェクト構造を達成する方法はありますか?
私は次のことを達成しようとしています:
this.inputs[options.el.find('form').attr('class')] = {};
this.inputs[options.el.find('form').attr('class')][options.elements[x].selector] = false;
ただし、構文エラーなしで上記を実行することはできません!
このオブジェクト構造を達成する方法はありますか?
その構文は合法に見えますが、これらの長いワンライナーは誰にも何の恩恵も与えていません。失敗した場所を見つけることができるように、少し分解します。
var className = options.el.find('form').attr('class');
var selector = options.elements[x].selector;
this.inputs[className] = {};
this.inputs[className][selector] = false;
オブジェクトへのインデックスは常に文字列でなければなりません:
var obj = {
a: 2;
}
obj.a = 3; //a is 3 now
obj['a'] = 4;//a is 4 now
あなたが言っoptions.elements[x].selector
たinput[name="username"]
ので、この行で推測します:
this.inputs[options.el.find('form').attr('class')][options.elements[x].selector] = false;
あなたが本当にやろうとしていることは次のとおりです。
this.inputs[options.el.find('form').attr('class')]['username'] = false;
したがって、次のようにすることができます。
var sel = options.elements[x].selector;
console.log( 'sel is ' + sel );
this.inputs[options.el.find('form').attr('class')][sel] = false;
sel が文字列であることを確認してください。あなたは試してみたいかもしれません
var sel = options.elements[x].selector.value;
この.value
ビットは、入力要素内からテキストを取得します。