计算DIV内容的总和

时间:2010-03-11 11:37:48

标签: onclick sum getelementbyid

我有一个包含多个SELECT框的表单,并根据用户的选择显示一个值。这完全有效。

现在我想要一个自动或按下按钮时计算这些值的SUM的脚本。

到目前为止我的完整代码是:

JavaScript:

<script type="text/javascript">
window.onload=function(a,b)
{
    value=document.getElementById('value1'),
    combobox=document.getElementById('first');

    combobox.onchange=function(a)
    {
    document.getElementById('value1').innerHTML = "&euro; " +this.value;
    }

    value2=document.getElementById('value2'), 
    combobox2=document.getElementById('second');

    combobox2.onchange=function(b)
    {
    document.getElementById('value2').innerHTML = "&euro; " +this.value;
    }
}
function changeText(){
var sum;    
sum= (value * 1) + (value2 * 1);
document.getElementById('sum').innerHTML = "&euro; " +this.value;
}
</script>

HTML:

        <ol> 
            <li><label><span>First</span></label>
            <select name="block1" id="first"> 
                <option value="0">Please select...</option>
                <option value="1">Summer</option> 
                <option value="2">Spring</option> 
            </select></li> 
        </ol>       
        <ol> 
            <li><label><span>Second</span></label>
            <select name="block2" id="second">
                <option value="0">Please select...</option> 
                <option value="1">Summer</option> 
                <option value="2">Spring</option> 
                <option value="3">Pink</option> 
                <option value="4">Corporate</option> 
            </select></li> 
        </ol>

        <div id="value1">value 1</div>
        <div id="value2">value 2</div>

        <input type='button' onclick='changeText()' value='Calculate'/> 

        <div id="sum">Total here</div>

如果有人可以提供帮助,那就太好了。我真的无法弄明白。非常感谢!!

1 个答案:

答案 0 :(得分:1)

我稍微修改了你的JavaScript以满足计算需求,现在它可以正常工作:

window.onload=function(a,b)
{
    value=document.getElementById('value1'),
    combobox=document.getElementById('first');

    combobox.onchange=function(a)
    {
    document.getElementById('value1').innerHTML = "&euro; " +this.value;
    }

    value2=document.getElementById('value2'), 
    combobox2=document.getElementById('second');

    combobox2.onchange=function(b)
    {
    document.getElementById('value2').innerHTML = "&euro; " +this.value;
    }
}
function changeText(){
var sum;    
div1Value = document.getElementById('value1').innerHTML.replace(/[^0-9]/g, '')*1;
div2Value = document.getElementById('value2').innerHTML.replace(/[^0-9]/g, '')*1;
sum = div1Value + div2Value;
document.getElementById('sum').innerHTML = "&euro; " +sum;
}​

此处示例:http://jsbin.com/awici/2

但是,我建议你使用其他方法,因为这个方法有点不稳定,并将数字作为字符串处理。

一个好的方法是将值存储在隐藏字段中,然后简单地计算其中的值。

希望这清楚,并帮助你。随意问你不理解的任何事情