有人可以帮我避免使用eval()吗?

时间:2016-07-21 17:23:43

标签: javascript eval

我有这段代码:

  var Monday = scheduledb({
      "monday": true
  }).count();
  var Tuesday = scheduledb({
      "tuesday": true
  }).count();
  var Wednesday = scheduledb({
      "wednesday": true
  }).count();
  var Thursday = scheduledb({
      "thursday": true
  }).count();
  var Friday = scheduledb({
      "friday": true
  }).count();
  $$(".day-selector").each(function (index) {
      $$(this).text(eval($$(this).attr("id")) + " classes");
  });

我尝试做的是使用从元素的id属性获取的值并为其执行数据库查找。但.attr()返回一个字符串,我无法从中获取变量值。如何在不使用eval()的情况下执行此操作?

1 个答案:

答案 0 :(得分:3)

使用更好的模型,因此您无需使用eval

var days = {
 Monday : scheduledb({"monday": true}).count(),
 Tuesday : scheduledb({"tuesday": true}).count(), 
 ...
};

而不是括号表示法:

$$( this ).text(days[$$( this ).attr("id")])

或者只是放弃查找

var obj = {};
obj[$$( this ).attr("id").toLowerCase()] = true;
$$( this ).text( scheduledb(obj).count() )