我正在尝试保存字符串变量,然后将此变量用作其他变量。
我正在"名称"中保存一个字符串。变量可以是"每周","每月"或者"每季度#34;
然后使用就像" this.weekly"但使用"名称"参考。只是因为没有通过" swtich"对于每个案例。
这是我的代码:
// Update "report" variable onclick checkbox
checkboxSaveOnChange: function(newCheckbox){
var name = newCheckbox.checked;
if (newCheckbox.checked) {
this.name.push(newCheckbox.value);
} else {
var index = this.name.indexOf('newCheckbox.value');
this.name.splice(index, 1);
}
/*switch (name) {
case 'weekly':
break;
case 'monthly':
break;
case 'quarterly':
break;
}*/
console.log(this.weekly);
console.log(this.monthly);
console.log(this.quarterly);
},
尝试使用var name = 'this.+'newCheckbox.checked;
- 没有工作......
编辑:
这仍然导致错误:
// (newCheckbox.checked) ? this.name.push(newCheckbox.value) : this.name.indexOf('newCheckbox.value');
if (newCheckbox.checked) {
this[name].push(newCheckbox.value);
} else {
var index = this[name].indexOf('newCheckbox.value');
this[name].splice(index, 1);
}
答案 0 :(得分:3)
尝试使用input.schema.containsField("my_field")
。在JavaScript中,属性访问器可以使用点表示法和括号表示法。您可以从Mozilla Developer Network MDN查看文档以获取详细信息。
答案 1 :(得分:1)
这是一个详细说明上一个答案的例子。
wsSource.Range("B" & i & ":" & "C" & i).Copy 'Copy cells Bi and Ci
wsReceiver.Range("A" & j & ":" & "B" & j).PasteSpecial xlPasteValues
var thingy = {
weekly: false,
monthly: false,
quarterly: false,
checkboxSaveOnChange: function(newCheckbox) {
var value = newCheckbox.value,
checked = newCheckbox.checked;
this[value] = checked;
}
};
document.getElementsByTagName("button")[0].onclick = function(){
var cbs = document.querySelectorAll("input[type='checkbox']");
for(var i=0; i<cbs.length; i++) thingy.checkboxSaveOnChange(cbs[i]);
console.log(thingy);
};