Javascript 需要添加具有整数值的div元素的帮助吗

Javascript 需要添加具有整数值的div元素的帮助吗,javascript,jquery,html,Javascript,Jquery,Html,我有三个DIV,它们的内容是整数值,并且经常从另一个源更新。我在这里的主要想法是将三个div的内容解析为float或integer,将它们相加并在另一个div中显示总数。我期待着使用onchange()函数处理div中的内容,因为它们中的内容将经常更改。下面是我的代码,它目前不工作,如果你能帮我一把,我将非常感激。 此div中的内容将使用文本输入进行频繁更新,您可以创建一个文本输入输出,该输入操作第一个div,然后显示整个总和 提前谢谢 函数总数(){ var value1=parseFlo

我有三个DIV,它们的内容是整数值,并且经常从另一个源更新。我在这里的主要想法是将三个div的内容解析为float或integer,将它们相加并在另一个div中显示总数。我期待着使用onchange()函数处理div中的内容,因为它们中的内容将经常更改。下面是我的代码,它目前不工作,如果你能帮我一把,我将非常感激。 此div中的内容将使用文本输入进行频繁更新,您可以创建一个文本输入输出,该输入操作第一个div,然后显示整个总和 提前谢谢


函数总数(){
var value1=parseFloat($('#div1').innerHTML())| 0;
var value2=parseFloat($('#div2').innerHTML())| 0;
var value3=parseFloat($('#div1').innerHTML())| 0;
总风险价值;
总计=值1+值2+值3;
$('#total').html(总计);
}

4.
5.
6.
总数$
使用此


函数总数(){
var value1=parseFloat($('#div1').html())| 0;
var value2=parseFloat($('#div2').html())| 0;
var value3=parseFloat($('#div1').html())| 0;
总风险价值;
总计=值1+值2+值3;
$('#total').html(总计);
}
使用()代替innerHTML,如下所示:

<script>
    function total() {
      var value1 = parseFloat($('#div1').text()) || 0;
      var value2 = parseFloat($('#div2').text()) || 0;
      var value3 = parseFloat($('#div1').text()) || 0;
      var total;
      total=value1 + value2 + value3;
      $('#total').html(total);
    }
</script>  

函数总数(){
var value1=parseFloat($('#div1').text())| 0;
var value2=parseFloat($('#div2').text())| 0;
var value3=parseFloat($('#div1').text())| 0;
总风险价值;
总计=值1+值2+值3;
$('#total').html(总计);
}
试试这个:

 function total() {
    // fetch text using 'text' method and then convert string into number using '+' operator
    var value1 = +$('#div1').text() || 0;
    var value2 = +$('#div1').text() || 0;
    var value3 = +$('#div1').text() || 0;
    var total = value1 + value2 + value3;
    $('#total').html(total);
}

我并不想回答,因为这可能很难解决,因为我们不知道这些值最初是如何更新的。然而,我最后做了一个相对广泛的例子,所以我们就在这里

如前所述,onChange需要用户输入或操作来检测任何更改。因此,这意味着您的
total()
在加载页面时只会触发一次(假设页面正好位于
之前)

最好的方法是将
total()
粘贴到原始函数中,以更改html元素中的值。这样每次都会触发
total()


我忍不住让
total()
更具动态性。这样,如果添加或删除这些子div,则不需要更新javascript


下面是一个使用单击事件更新值的示例。因此,您只需将
total()
添加到click事件中即可。

函数总数(){
var parentContainer=$(“#mywrapper”),
总数=0;
parentContainer.children().text(函数(i,val){
总计+=解析整数(val);
});
$('#total').html(总计);
}
总数();
$('#updateBtn')。在(“单击”,函数()上){
$('#mywrapper').children().text(函数(i,val){
返回parseInt(val)+1;
});
总数();
});

4.
5.
6.
总数$

更新值
jQuery的对象没有方法
.innerHTML()
。改为使用
.html()
。或者使用
.text()
-函数。如果您有重复的ID,它将无法工作。。。这里也解释了类似的问题:首先,onChange不会像Pete提到的那样与div一起工作。而是从实际更改div值的位置调用total函数。并且使用@empiric或.html()提到的.text()。是的,onChange需要用户输入来检测更改,因此您应该将total函数粘贴到函数更新值的地方。无论如何,| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |为了表明!
 function total() {
    // fetch text using 'text' method and then convert string into number using '+' operator
    var value1 = +$('#div1').text() || 0;
    var value2 = +$('#div1').text() || 0;
    var value3 = +$('#div1').text() || 0;
    var total = value1 + value2 + value3;
    $('#total').html(total);
}
var parentContainer = $('#mywraper');

function total() {

    var values = {}; // Optional****
    var total = 0;

    // Loops through parent containers children ( in this case div elements ).
    parentContainer.children().text(function( i, val ) {

        var value = parseInt( val );

        // Creates a variable where the variable name is based on the current elements index and value is based on the text inside the element. 
        values[ 'child_' + (i+1) ] = value; // Optional****

        // Sums up all the values
        total += value;

    });

    // The optional lines enable you independently check each value, for example:
    // console.log( values.child_1 )

    // Push total into the #total element.
    $('#total').html( total );

}

total();