2013-06-08 2 views
0

Я пытаюсь суммировать несколько полей с помощью функции JQuery each, но я всегда возвращаю '0'. This topic was discussed here. Я позаимствовал фрагмент кода.Суммарные значения классов всегда возвращаются к 0

Я делаю что-то неправильное с моим синтаксисом, но не могу определить, что это такое. Я возвращаю значение null или 0 все время.

<!DOCTYPE html> 
<html lang="en"> 
    <head> 

    </head> 
    <body> 
    <table> 
     <tr> 
      <td> 
      Value 1 
      </td> 
      <td> 
      Value 2 
      </td> 
      <td> 
      Sum 
     </td> 
    </tr> 
    <tr> 
     <td> 
      <input class="SumText" type="text" id="Value1"> 
     </td> 
     <td> 
      <input class="SumText" type="text" id="Value2"> 
     </td> 
     <td> 
      <input class="TotalText" type="text" id="Total"> 
     </td> 
    </tr> 
</table> 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script> 
<script> 
    $(document).ready(function(){ 
     $('.SumText').change(function(){ 
      var sum = 0; 
      // iterate through each td based on class and add the values 
      $('.SumText').each(function() { 
       var value = $(this).text(); 
       alert("This.Text: " + $(this).text() + "Value: " + value); 
       // add only if the value is number 
       if(!isNaN(value) && value.length != 0) { 
        sum += parseFloat(value); 
       } 
      }); 
      $('#Total').val(sum); 
     }); 
    }); 

</script> 

ответ

1

Ваш код в другом вопросе является правильным (для данной ситуации). <input> Элементы не имеют текста. Они имеют значения:

$(this).val() 
+0

Удивительный! Это очень удобно. Еще так много, чтобы учиться! – Shrout1

Смежные вопросы