1

嗨,我在这里有一个帖子http://jsfiddle.net/7ztEf/9/解释了我想要实现的目标。

我会分解它,我需要根据数组索引的值填充一个 div bg,这些是 1-40 之间的 4 个随机数,比如返回的数字是 5、15、25、35。逻辑是如果数字范围为 1-10 则 div bg 为红色,如果 11-20 则为蓝色等

我一直在为此自杀,真的需要一些建议以最好的方式这样做,非常感谢P

function myNumbers(numbers, type) {
for (var x in numbers) {
   document.getElementById(type + x).innerHTML = numbers[x];

    /*
    here I need to query each index value and apply to ball div, ie:

    if index 0 numbers > 0) && numbers <= 10 than ball-0 div bg is red
    if index 0 numbers > 11) && numbers <= 20 than ball-0 div bg is blue
    if index 0 numbers > 21) && numbers <= 30 than ball-0 div bg is orange
    if index 0 numbers > 31) && numbers <= 40 than ball-0 div bg is green

    repeating for eack index value. 

    if index 1 numbers > 0) && numbers <= 10 than ball-1 div bg is red

    etc       

    */

} 

}

myNumbers([5, 15, 25, 35], 'test-')

4

3 回答 3

1

对于几种颜色,我会这样写:

for (var x = 0, n = numbers.length; x != n; ++x) {
    var nr = numbers[x], 
        el = document.getElementById(type + x),
        color;

   el.innerHTML = nr;

    if (nr > 0) {
        if (nr <= 10) {
            color = 'red';
        } else if (nr <= 20) {
            color = 'blue';
        } else if (nr <= 30) {
            color = 'orange';
        } else if (nr <= 40) {
            color = 'green';
        }
    }
    if (color) {
        el.style.color = color;
    }
} 

演示

于 2013-03-12T03:34:22.410 回答
1

试试这个..

for (var x = 0;x<numbers.length;x++) {

    el = document.getElementById(type + x);

el.innerHTML = nr;

if (nr > 0) {
    if (nr <= 10) {
        color = 'red';
    } else if (nr <= 20) {
        color = 'blue';
    } else if (nr <= 30) {
        color = 'orange';
    } else if (nr <= 40) {
        color = 'green';
    }
}
if (color) {
    document.getElementById('ball-' + x).style.backgroundColor = color;
}
} 
于 2013-03-12T03:38:11.517 回答
0

我会做这样的事情:

var colors = ['red', 'blue', 'orange', 'green'];

function myNumbers(numbers, type) {
    for (var i = 0; i < numbers.length; i++) {
        var number = numbers[i];
        var color = colors[Math.floor(number / colors.length)];

        document.getElementById(type + i).innerHTML = number;
        document.getElementById('ball-' + i).style.backgroundColor = color;
    }
}

不要使用for...in语法迭代数组。迭代对象的属性。

于 2013-03-12T03:27:45.370 回答