【问题标题】:JavaScript, How can I parse a variable into a command?JavaScript,如何将变量解析为命令?
【发布时间】:2012-07-19 14:44:06
【问题描述】:

我要做的是在for() 中启用多个复选框。现在看起来像这样,但据我所知,你不能从这样的变量运行命令,我不能运行,(例如)cab_type_value = "whatever"。我也不能跑road_load_enabled;它只是行不通。有谁可以做到这一点?如何在 document.MyForm.InputName.disabled 中解析我的 var J

for( var j=1; j<=14; j++ ) {
    var cab_type_value = "document.exe_mode_form.cab_type" + j + ".value";
    var cab_type_checked = "document.exe_mode_form.cab_type" + j + ".checked == 1";

    for( var i=1; i<=document.exe_mode_form.road_load_number.value; i++ ) {
        var road_load_value = "document.exe_mode_form.load" + i + ".value";
        var road_load_enabled = "document.exe_mode_form.load" + i + ".disabled = false";
        var road_load_disabled = "document.exe_mode_form.load" + i + ".disabled = true";
        var rld_db = "document.exe_mode_form.a" + i + "_a1.value";

        if ( cab_type_checked ) {
            if ( test == 1 ) {
                if(road_load_disabled) {
                    alert("road_load_disabled");
                    road_load_enabled;
                }
                test = 2;
            }

            if(cab_type_value == rld_db) {
                if(olof == 1) {
                    alert("cab_type_value  == rld_db");
                    olof = 2;
                }

                road_load_enabled;
            }
        }
    }
}

另外,这部分不起作用:

if(cab_type_value == rld_db) {
    if(olof == 1){
        alert("cab_type_value  == rld_db");
        olof = 2;
    }

    road_load_enabled;
}

我已经检查过,cab_type_valuerld_db 具有相同的值。

【问题讨论】:

标签: javascript parsing variables command


【解决方案1】:

尝试更改这些行:

var cab_type_value = "document.exe_mode_form.cab_type" + j + ".value";

到:

var cab_type_value = document.exe_mode_form['cab_type' + j].value;

同样的逻辑也适用于函数调用:

someVariable = 'alert';
window[someVariable]('Foo!');//alerts foo

如果你的函数没有在全局范围内声明,你可以用任何命名空间对象替换windowfoobarObject.orEven.nestedOnes[someVariable]();
最后,因为我个人讨厌window关键字(这是一个循环引用),您可以简单地选择在常规函数调用或全局范围内使用this['alert']('foo');this 指向其调用的上下文,在这些情况下是全局对象

【讨论】:

  • 谢谢。这正是我想要的。
猜你喜欢
  • 2015-08-10
  • 2017-03-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-10-06
  • 1970-01-01
  • 1970-01-01
  • 2015-11-17
相关资源
最近更新 更多