使用javascript将各种输入字段添加到一起

使用javascript将各种输入字段添加到一起,javascript,html,Javascript,Html,我有几个文本字段 <input class="add" type="text"> <input class="add" type="text"> <input class="add" type="text"> <input class="add" type="text"> <p id="total"></p> 但这并没有产生任何结果 我做错什么了吗 干杯var sum=0 sum+=isNaN($(this.val())|

我有几个文本字段

<input class="add" type="text">
<input class="add" type="text">
<input class="add" type="text">
<input class="add" type="text">
<p id="total"></p>
但这并没有产生任何结果

我做错什么了吗

干杯

var sum=0

sum+=isNaN($(this.val())| |$。trim($(this.val())=''?0:parseFloat(this.val())

var和=0


sum+=isNaN($(this.val())| |$。trim($(this.val())=''?0:parseFloat(this.val())

如果您添加的是数字,那么这应该可以:

function addAll() {
  var sum = 0;
  $('.add').each(function(){
    sum += isNaN(this.value) || $.trim(this.value) === '' ? 0 : parseFloat(this.value);
  });

  $('#total').html(sum);
}
$('.add').keyup(addAll);  

如果希望在页面加载时使用此功能,请在
.ready()
函数中添加对
addAll
的调用。以下是完整的代码:

$(document).ready(function(){

  addAll();
  $('.add').keyup(addAll);  
})

function addAll() {
  var sum = 0;
  $('.add').each(function(){
    sum += isNaN(this.value) || $.trim(this.value) === '' ? 0 : parseFloat(this.value);
  });

  $('#total').html(sum);
}

如果您添加的是数字,那么这应该可以:

function addAll() {
  var sum = 0;
  $('.add').each(function(){
    sum += isNaN(this.value) || $.trim(this.value) === '' ? 0 : parseFloat(this.value);
  });

  $('#total').html(sum);
}
$('.add').keyup(addAll);  

如果希望在页面加载时使用此功能,请在
.ready()
函数中添加对
addAll
的调用。以下是完整的代码:

$(document).ready(function(){

  addAll();
  $('.add').keyup(addAll);  
})

function addAll() {
  var sum = 0;
  $('.add').each(function(){
    sum += isNaN(this.value) || $.trim(this.value) === '' ? 0 : parseFloat(this.value);
  });

  $('#total').html(sum);
}

您定义了一个名为
addAll()
的函数,但是您的keyup事件正在调用一个名为
displaytoal()
的函数,我们在这里没有看到这个函数。可能您只是使用了错误的函数引用?@paiCode-而不是
this.val()
而不是
this.val()
-注意
回调中的此
是纯
HTMLElement
而不是
jQuery
项集
$(this.val()
这是
$(this.attr('value')
的缩写,即确切地说
这个.value
@paiCode:不,请不要。;)
this
在回调中引用元素本身,它不会为每个元素创建新的jQuery对象。@abuduba对不起,我是说$(this)。只是一个错误。您定义了一个名为
addAll()
的函数,但您的keyup事件正在调用一个名为
displaytoal()
的函数,我们在这里没有看到这个函数。可能您只是使用了错误的函数引用?@paiCode-而不是
this.val()
而不是
this.val()
-注意
回调中的此
是纯
HTMLElement
而不是
jQuery
项集
$(this.val()
这是
$(this.attr('value')
的缩写,即确切地说
这个.value
@paiCode:不,请不要。;)
this
在回调中引用元素本身,它不会为每个元素创建新的jQuery对象。@abuduba对不起,我是说$(this)。只是一个错误。我在这个测试页面上尝试了这个解决方案,但仍然没有乐趣。。。有什么想法吗?好吧,我重述了我做错的事情:)是否有任何方法可以让页面加载工作正常?目前它只在我编辑了其中一个值后才起作用,这不仅在加载页面时起作用,而且在编辑值时不起作用-知道吗?我在这个测试页面上尝试了这个解决方案,但仍然没有乐趣。。。有什么想法吗?好吧,我重述了我做错的事情:)是否有任何方法可以让页面加载工作正常?目前,它只在我编辑了其中一个值后才起作用。这不仅在页面加载时起作用,而且在编辑值时起作用。你知道吗?