我正在使用此脚本以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"})
,我只是在成功设置中将其嵌套在交换机中时遇到了麻烦。
我该怎么办?或者,有更好的方法吗?
非常感谢。
答案 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 ]);
}