舍入值并将其放入另一个元素中

时间:2011-06-08 00:37:37

标签: javascript

我的下面的代码可以解决一个小问题。我已经坐了几个小时试图解决它。请有人帮帮我。

var price = new Array(12.121212, 45.334, 2.34, 0);

for (var i=0;i<price.length;i++){
        roundPrice[i] = Math.round(price[i]*100)/100;
    }

    var s = document.getElementsByTagName('input');
        for (var i=0;i<s.length;i++) {
            if (s[i].className == 'price') {//changed this to get class instead
                    s[i].value = roundPrice[0];
            }

        }

令我头疼的是

s[i].value = roundPrice[1];

如果我声明了数组的实际索引,它会将该单个值放入指定的所有输入元素中。

另一方面,如果我使用这行代码(下面),我会在所有指定的元素中得到'undefined'。

s[i].value = roundPrice[i];

谢谢

3 个答案:

答案 0 :(得分:0)

您在roundPrice中只有4个值(直接从price[]获取它的值),而s[]中的值可能更多,这是页面上的输入元素。

此外,您正在检查input元素的ID是否为'price',然后才设置该值。这应该只发生一次,因为id属性对于DOM中的每个元素都是唯一的。

如果您在页面中只有4个输入元素,并且计划将price[]中的值放入其中,请移除if (s[i].id == 'price') {并关闭}

另外,您应该使用roundPrice[]在顶部初始化var roundPrice = new Array();数组。

答案 1 :(得分:0)

试试这个:

var price = [12.121212, 45.334, 2.34, 0]
var roundPrice = [0, 0, 0, 0];

而不是你的第一行。 PS我不确定whilch是数组new array()[]

的首选方式

jsFiddle:http://jsfiddle.net/wfSWQ/

此外,因为您正在设置ID。你可以做一个`document.getElementById(“price”),它将返回null或元素。 (只有1个元素)。哪个应该比循环遍历所有这些更好更快。

答案 2 :(得分:0)

如果我是你,我会这样做,假设价格和输入相同

var price = new Array(12.121212, 45.334, 2.34, 0);
var s = document.getElementsByTagName('input');

for (var i=0;i<price.length;i++){
        var roundPrice = Math.round(price[i]*100)/100;

        if (s[i].id == 'price') {
                s[i].value = roundPrice;
            }

    }

希望帮助

:)