我下面有一个基本的脚本,它从HTML中的字段(工作时间)中获取数字,然后匹配模式。如果特定工作时间达到1小时,则HTML文本(注解)的颜色会发生变化。
我的问题是如何使脚本变小,第二部分是如何重新设置颜色模式,以每5小时圈一圈。因此,如果工作时间达到20小时,则颜色图案应循环4次。
谢谢您的帮助!
var str = $(".work-hours").text();
var pattern = /[0-9]+/;
var match = str.match(pattern);
if (parseInt(match) == 0) {
$('.notes').css('color','white');
}
if ((parseInt(match) >= 1) && (parseInt(match) < 2)) {
$('.notes').css('color','green');
}
if ((parseInt(match) >= 2) && (parseInt(match) < 3)) {
$('.notes').css('color','yellow');
}
if ((parseInt(match) >= 3) && (parseInt(match) < 4)) {
$('.notes').css('color','orange');
}
if ((parseInt(match) >= 4) && (parseInt(match) < 5)) {
$('.notes').css('color','pink');
}
if (parseInt(match) >= 5) {
$('.notes').css('color','red');
}
字符串
4条答案
按热度按时间2ledvvac1#
由于parseInt使其对值取最低值,因此可以像这样简化代码
字符串
如果你想让它在添加更多小时数时环绕颜色,你也可以对匹配做一些逻辑处理,使它适合数组,或者用一种基本的方法扩展数组以增加额外的小时数。
型
wkyowqbh2#
对于问题的第二部分,您可以使用
setInterval
函数根据特定的时间间隔运行任何函数。字符串
irtuqstp3#
为了帮助回答第一个问题,因为if语句只有一行,所以不需要方括号。
要回答第二个问题,请使用mod符号
%
而不是等号。字符串
fnatzsnv4#
>=
。%
。上面的应用到你的代码,它转换成:
字符串