javascript - jQuery 每 5 个工作小时重置一次颜色模式

标签 javascript jquery html css

我在下面有一个基本脚本,它从 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');
        }

最佳答案

因为 parseInt 使它的值下降,你可以像这样简化代码

    var str = $(".work-hours").text();
    var pattern = /[0-9]+/;
    var match = str.match(pattern);
    
    var colors = ['white', 'green', 'yellow', 'orange', 'pink', 'red'];

    $('.notes').css('color', colors[parseInt(match)]);

如果您希望它在添加更多小时数时围绕颜色圈出,您还可以对匹配项执行一些逻辑以使其适合数组,或者为额外的小时数扩展数组的基本方法

    var str = $(".work-hours").text();
    var pattern = /[0-9]+/;
    var match = str.match(pattern);
    
    var colors = ['white', 'green', 'yellow', 'orange', 'pink', 'red'];
    var color = colors[parseInt(match)%colors.length];
    $('.notes').css('color', color);

关于javascript - jQuery 每 5 个工作小时重置一次颜色模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36247158/

相关文章:

php - 通过 jQuery 使用 AJAX 发布 MySQL 结果

Javascript继承静态和实例方法/属性

javascript - 更改放置在模态页脚中的按钮的任务

javascript - 发送电子邮件后,我可以使用 javascript 显示消息吗?

html - 如何使广告响应

html - 为什么 flex 元素不包装?

javascript - 如何检测 YouTube 上的页面导航并无缝修改其外观?

javascript - react Highcharts : Synchronized chart and tooltip is not highlighting the points

javascript - spin.js 在长时间运行的任务期间不会显示,但在我单步执行调试器时会显示

javascript - 如何使用 jQuery 更改元素的名称和 id?