Из OP понятно, что .result
- это span
, поэтому $("input").next(".result").val(sum);
не будет работать, потому что span
не имеет функции с именем .val()
, вместо этого используйте .text()
.А также изменить
var rank = $("input").next(".rank").val();
на
var rank = $(this).next(".rank").val();
ДЕМО ЗДЕСЬ
РЕДАКТИРОВАТЬ
На основена комментарий ОП.попробуйте это
$(document).on("change", ".parent", function() {
var sum = 0;
$(".parent").each(function() {
var rank = $(this).next(".rank").val();
sum = $(this).val() * rank;
$(this).parent().find(".result").text(sum);
});
});
ОБНОВЛЕНО ДЕМО