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