请教大佬,JavaScript 如何遍历含数字的变量名
javascript吧
全部回复
仅看楼主
level 1
步海马 楼主
请教大佬,如何遍历含数字的变量名
如下例子,做了个对话框,有选择按钮1、2、3等。
问题出在for语句里,如何遍历n个按钮wButton1...n?以及如何在遍历中对变量bChecked赋布尔值?
var wDlg = new DzDialog ()
var wButton1 = new DzRadioButton (wDlg)
wButton1.text = "choose 1" ;
wButton1.checked = true ;
for (var a = 1; a < 3; a++) {
var wBT = "wButton" + [a];
var bChecked = wBT.checked;
if ( !bChecked )
{print ( wBT, wBT.text, bChecked );}
}
执行结果:
wButton1 undefined undefined
wButton2 undefined undefined
2023年04月17日 07点04分 1
level 1
步海马 楼主
研究了半天,把a转成了字符串,但还是不行,不认可新组成的字符串 wButton1.text 是原第3行的变量名,真没招了。
var wDlg = new DzDialog ()
var wButton1 = new DzRadioButton (wDlg)
wButton1.text = "choose 1" ;
wButton1.checked = false ;
for (var a = 1; a < 3; a++) {
var A = a.toString ();
var B = A + 8;
var wBT = "wButton" +A;
var wText = wBT + ".text";
var bChecked = (wBT.checked);
if ( !bChecked )
{
print ( wBT, B, wText, bChecked );
}
}
****结果
wButton1 18 wButton1.text undefined
wButton2 28 wButton2.text undefined
2023年04月17日 09点04分 2
level 12
eval应该能实现
2023年04月17日 16点04分 3
level 1
步海马 楼主
谢谢两位吧主的热心帮助!
这是DAZ软件里用的Javascript,不是网站的,据说是什么QT Script的变种,是从ECMAScript 演化来的。
所以,eval昨天试过,程序不接受。let也是不接受。
然后,我放弃直接用字符串变量名了,改为了数组变量名,比如 aButton [a],遍历倒是遍历了,结果又出了新问题,点击后的布尔值无法调用。如下图:
我试着用bCheck数组来遍历保留按钮点击的布尔值,可是,在exec执行之前,布尔值都是false,这个能遍历保留,但不是想要的。而执行和点击后,就不知道该如何遍历提取了。
执行后的 cButton.checked 只是遍历的最后一次(即shoename2)的布尔值,之前的布尔值不知如何提取。从新遍历的话,程序又不认 .checked,非得要再加个 DzRadioButton,但这又变成了新对话框的场景,前值就没了。
所以,如图右所示的对话框,比如10多个选项,如何输出保留全部选项的布尔值?
2023年04月18日 05点04分 6
level 1
步海马 楼主
最终,勉强搞定了,要加个 var k = wBtnGrp.selected 来取执行后的点击值。
这类变种的程序,缺乏教材,独自摸索,真是累啊。[狂汗]
2023年04月18日 10点04分 7
1