我正在使用此脚本在表单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 类。这个想法是这样做的:
<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 ]);
}