javascript - 为各个数组元素分配不同的颜色

标签 javascript jquery

假设我有数组 arr1。我想打印这个数组(即仅显示数字),但是,我想根据数字的值对数字进行着色。如果 arr1[i]<15,则为绿色;如果 arr1[i]>20,则为红色,否则为橙色。有这样的效果。

var arr1 = [ 5,10,13,19,21,25,22,18,15,13,11,12,15,20,18,17,16,18,23,25,25,22,18,15,13,11,12,15,20,18];

这是我尝试做的事情:

        for(var i=0; i<arr1.length;i++){
            if(arr1[i]<15){
                var temp = $(this).css("color","green");
                $this.text(temp);
            } else if(arr1[i]>20){
                var temp = $(this).css("color","red");
                $this.text(temp);
            } else {
                var temp = $(this).css("color","orange");
                $this.text(temp);
            }

        }

我尝试更改各个元素的 css 属性并将它们添加到 div,但它对我不起作用。

有人可以建议我该怎么做吗?

最佳答案

我建议:

var arr1 = [5, 10, 13, 19, 21, 25, 22, 18, 15, 13, 11, 12, 15, 20, 18, 17, 16, 18, 23, 25, 25, 22, 18, 15, 13, 11, 12, 15, 20, 18],
    target = document.getElementById('test');

for (var i = 0; i < arr1.length; i++) {
    var elem = document.createElement('span'),
        text = document.createTextNode(arr1[i]);
    elem.appendChild(text);
    if (arr1[i] < 15) {
        elem.style.color = 'green'
    } else if (arr1[i] > 20) {
        elem.style.color = 'red'
    } else {
        elem.style.color = 'orange'
    }
    target.appendChild(elem);
}​

JS Fiddle demo

我使用纯 JavaScript,因为我看不到 $(this) 指的是什么,而且简单地使用已知变量来演示似乎更容易。

我使用 span 来包含正在评估的文本的原因很简单,因为 textNode 无法直接设置样式,只能使用 元素可以有一个style属性。

关于javascript - 为各个数组元素分配不同的颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13546541/

相关文章:

javascript - JavaScript websocket可以从服务器获取返回值吗?

javascript - 设置检查的数据表 jquery 循环不起作用

javascript - 尝试修复带有下拉菜单的导航栏到页面顶部

javascript - 将代码从 Rxjs 转换为 xstream

javascript - 如何在不刷新页面的情况下根据准确时间重新加载内容

javascript - 动画变化的排名表

javascript - 在 Angular 结构指令中使用动态组件会产生额外的 HTML 标签。如何去除或更换它?

jquery - 如何将加载微调器添加到 WooCommerce 结帐页面

javascript - jQuery .fn 表示 "not a function"

jQuery "Object doesn' t 在 Internet Explorer 中支持此属性或方法