hixon 发表于 2020-5-21 09:15:22

利用eval()方法批量设置控件属性

本帖最后由 hixon 于 2020-5-21 09:31 编辑

有时我们需要对界面上多个相同类型的控件属性进行修改,我们除了一行一行代码对他们进行修改,还有没有更好的办法?下面就来介绍下怎么利用JavaScript的eval方法来实现。


下面我们举例说明一下eval怎么使用:如下图,页面上有4个按钮,在页面onLoad的时候把它们初始化成下面的效果


1、首先我们看一下只修改一个按钮的情况

模拟运行


2、我们利用eval()方法来实现多个按钮的属性修改

模拟运行,就是我们想要的效果了


注意: JavaScript中单引号和双引号都可以表示字符串,如 'abc' 和 "abc"是一样的。所以在使用eval()方法的时候,如果原始语句中用的单引号,就用eval双引号来包含, 要不然语法会有错误!

原始语句: ui.main.textButton_1.text = 'abc'; // 单引号
eval()语句:eval("ui.main.textButton_1.text = 'abc';"); // eval双引号

原始语句: ui.main.textButton_1.text = "abc"; // 双引号
eval()语句:eval('ui.main.textButton_1.text = "abc";'); // eval单引号






hixon 发表于 2020-5-21 09:37:31

当然我们也可以使用数组来实现,如:
var buttonArray = ;
for (var i=0; i<4; i++) {
    buttonArray.text = '测试-' + (i + 1);
    buttonArray.textColor = '#ff0000';
}

w100 发表于 2020-5-21 13:17:02

我更喜欢数组方式,不过eval()确实很有用,能动态生成javascript代码执行。:lol
页: [1]
查看完整版本: 利用eval()方法批量设置控件属性