【发布时间】:2011-05-07 10:29:34
【问题描述】:
我正在使用 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+='}}';
});
第一部分创建一个二维数组,该数组通过索引将一组案例与其结果输出相关联。这样收入 10 美元的东西(例如会议)将存储在 case[10] (Meeting=cases[10][0]) 中。
第二部分写入一个字符串,该字符串将一个 puts 放入一个类似这样的 switch 语句中:
function(x){
switch(x){
case "Meeting":
$("input[name^='earn']").val(10);
break;
case "Event1":
case "Event2":
$("input[name^='earn']").val(20);
break;
}
}
请注意,switch case 的语法使 Event1 和 Event2 具有相同的结果。
现在 autoearn 只是一个字符串,其中包含我想要的函数的代码。如何make成一个函数?有一个更好的方法吗?我正在考虑通过 PHP 发送它以将其返回给 jQuery,但这整个事情似乎真的很间接,并且可能有更简单的方法来做到这一点。
【问题讨论】:
标签: javascript jquery string function loops