1

我正在使用此脚本来更新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'
                 });
        });
});

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

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

我实际上正计划使用它:$("#mydiv").css({'background-color': "red"}),我只是无法将它嵌套在成功设置中的开关中。

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

非常感谢。

4

1 回答 1

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 ]);
}
于 2012-05-02T15:35:49.253 回答