jQuery AJAX 成功设置中的 switch 语句



我正在使用此脚本在表单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"}),我只是无法将其嵌套在成功设置中的开关中。

我该怎么做?或者,有没有更好的方法可以做到这一点?

多谢。

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 ]);
}

最新更新