HTML:
<table id="math-table">
<tr>
<td><input type="text" id="A1" name="A" value=""></td>
<td><input type="text" id="B1" name="B" value=""></td>
<td><input type="text" id="C1" name="C" readonly="readonly" tabIndex="-1" value=""></td>
</tr>
</table>
JS:
$("#math-table input").live("keyup", function(){
var id = this.id.match(/\d+/);
$("#C"+id).val( Math.round (($("#A"+id).val() / $("#B"+id).val()) * 100) + "%" );
$('#A'+id).attr('value', $('#A'+id).val());
$('#B'+id).attr('value', $('#B'+id).val());
$('#C'+id).attr('value', $('#C'+id).val());
});
var uniqueIds = $("#math-table tr").length;
$("#math-table input[id^='B']").live("change", function(){
var $thisRow = $(this).closest("tr"),
$clone = $thisRow.clone(), // Clone row
$inputs = $clone.find("input").val("");// Reset values, return all inputs
uniqueIds++; //Increment ID
$inputs[0].id = "A" + uniqueIds;
$inputs[1].id = "B" + uniqueIds;
$inputs[2].id = "C" + uniqueIds;
$thisRow.after($clone);
});
你可以看到A / B = C%非常简单。如何根据某个%?
将不同的CSS类添加到C中红色1-33%
绿色34-66%
蓝色67-100%
答案 0 :(得分:0)
它看起来像一个简单的if - else if或基于C值的switch语句。 只需将C值存储在变量中并进行测试。
只需使用addClass(http://api.jquery.com/addClass/)或removeClass(http://api.jquery.com/removeClass/)。
答案 1 :(得分:0)
以最明显的方式做到:
var num = Math.round(($("#A" + id).val() / $("#B" + id).val()) * 100);
$("#C" + id).val(num + "%");
if (num >= 0 && num <= 33) {
var cname = "alpha";
} else if (num > 33 && num <= 66) {
var cname = "beta";
} else if (num > 66 && num <= 100) {
var cname = "gamma";
}
$('#C').removeClass().addClass(cname);
答案 2 :(得分:0)
我更新了你的jsFiddle:
我添加了变量percent
并根据以下内容设置背景颜色:
if(percent>0 && percent<34)
$('#C'+id).addClass("red");
if(percent>33 && percent<67)
$('#C'+id).addClass("green");
if(percent>67)
$('#C'+id).addClass("blue");
编辑:我更新了脚本以从克隆中删除该类。添加此
$inputs = $clone.find("input").val("").removeClass();