小编Sve*_*ven的帖子

从Javascript中的字符串生成函数

我正在使用jQuery从xml文件中获取数据并将其保存为字符串.字符串是一个switch语句,我想成为一个函数.

$.get('type.xml', function(xml) {
var cases=[];
$(xml).find('type').each(function(){
    index=parseInt($(this).find('earn').text());
    if($.isArray(cases[index])){
        cases[index].push($(this).find('name').text());
    }else{
        arr=$.makeArray($(this).find('name').text());
        cases[index]=arr;
    }
});
var autoearn="function(x){switch(x){";
for(i=0;i<=100;i+=5){
    if($.isArray(cases[i])){
        $.each(cases[i], function(index,v){
            autoearn+='case "'+v+'":';
        });
        autoearn+='$("input[name^=\'earn\']").val('+i+');break;';
}}
autoearn+='}}';
});
Run Code Online (Sandbox Code Playgroud)

第一部分创建一个2D数组,通过索引将一组案例与其结果输出相关联.因此,收入10美元(例如会议)的东西将被存储在案例[10]中(会议=案例[10] [0]).

第二部分写了一个字符串,将一个put放入一个看起来像这样的switch语句:

function(x){    
    switch(x){
        case "Meeting":
            $("input[name^='earn']").val(10);
            break;
        case "Event1":
        case "Event2":
            $("input[name^='earn']").val(20);
            break;
    }
}
Run Code Online (Sandbox Code Playgroud)

请注意,switch case的语法使Event1和Event2具有相同的结果.

现在autoearn只是一个包含我想要的函数代码的字符串.怎么做成功能?有一个更好的方法吗?我想送它通过PHP返回回jQuery的,但是这整个事情似乎真的间接的,有可能是一个更简单的方法来做到这一点.

javascript string jquery loops function

2
推荐指数
1
解决办法
1355
查看次数

标签 统计

function ×1

javascript ×1

jquery ×1

loops ×1

string ×1