2

我想将变量设置为.prev()or .next(),例如:

   if(x == y)
       var shift = '.prev()';
   else
       var shift = '.next()';

   $("li.active").removeClass('active')shift.addClass('active');

我可能可以让它工作,eval()但这是一个安全隐患。

我错过了一些明显的东西吗?

4

1 回答 1

5

可以使用括号符号[spec]访问对象的每个属性。
foo.bar()是一样的foo['bar']()

if(x == y)
   var shift = 'prev';
else
   var shift = 'next';

// or a shorter and nicer way: 
// var shift = x == y ? 'prev' : 'next';

$("li.active").removeClass('active')[shift]().addClass('active');
于 2013-01-09T00:09:57.877 回答