批量设置属性

如下图,页面main上有4个文本按钮(textButton_1, textButton_2, textButton_3, textButton_4),我们想同时修改它们的文字以及文字颜色,我们除了一个接一个控件进行修改,能不能通过for循环的方式批量修改呢?

../_images/four_text_buttons.png

当然可以,有下面的两种方式来设置:

  1. 使用数组

ui.main.onLoad = function() {
    // 把控件对象放到一个数组里面
    var buttonArray = [ui.main.textButton_1,ui.main.textButton_2,ui.main.textButton_3,ui.main.textButton_4];
    for (var i=0; i<4; i++) {
        buttonArray[i].text = '测试-' + i; buttonArray[i].textColor = '#ff0000';
    }
};
  1. 使用eval方法 (eval()是JavaScript中的一个全局方法,点击了解详情)

ui.main.onLoad = function() {
    for (var i = 1; i <= 4; i++) {
        eval("ui.main.textButton_" + i + ".text = '测试-" + i + "';");
        eval("ui.main.textButton_" + i + ".textColor = '#ff0000';");
    }
};

模拟运行,效果如下:

../_images/multiple_button_simulator.png