在jQuery AJAX成功设置中切换语句

时间:2012-05-02 15:30:13

标签: jquery ajax switch-statement

我正在使用此脚本以select形式更新数据库:

$(document).ready(function() {
        $('select.changeStatus').change(function(){
                $.ajax({
                        type: 'POST',
                        url: 'Change-status.php',
                        data: {selectFieldValue: $('select.changeStatus').val(), projectId: $('input[name$="projectId"]').val()},
                        success: function(data){},
                        dataType: 'html'
                 });
        });
});

我想在success设置中插入一个switch语句,以便根据特定条件修改包含我的表单的<div/>的CSS类。我们的想法是这样做:

如果selectFieldValue为0,则将我的<div/>背景设为红色,如果为1,则将背景设为橙色,如果为2,则将背景设为绿色。

我实际上正在计划使用它:$("#mydiv").css({'background-color': "red"}),我只是在成功设置中将其嵌套在交换机中时遇到了麻烦。

我该怎么办?或者,有更好的方法吗?

非常感谢。

1 个答案:

答案 0 :(得分:2)

switch语句有点冗长。如果值为0,1或2,则可以使用这些作为索引从值数组中查找值:

success: function(data){
  var colors = [ "red", "orange", "green" ],
      _value = $('select.changeStatus').val();
  $("#mydiv").css("background", colors[ _value ]);
}

更新

  OP问:非常好,非常感谢。在范围的情况下(红色为0-1,橙色为2-3,绿色为4-5),是否有更好的方法来执行此操作?

     

var colors = [ "red", "red", "orange", "orange", "green", "green" ]

如果您想要形成数字集合,其中0和1会产生一种颜色,2和3会产生另一种颜色,而4到5会产生另一种颜色,我会稍微采用这种方式。我们知道,如果数字是奇数,那么它就是集合的高端。毕竟,2-3和4-5都在他们的高端有奇数。这意味着,如果数字为奇数,则其行为应与其早期的连续合作伙伴相同。所以,如果数字为五或四,我们使用四个。如果它是三个或两个,我们使用两个。

success: function(data){
  var colors = [ "red", "orange", "green" ],
      _value = $('select.changeStatus').val();

  if ( _value % 2 != 0 ) _value--; // Converts 1 to 0, 3 to 2, 5 to 4, etc.

  $("#mydiv").css("background", colors[ _value ]);
}