Умножьте входные значения в диапазон - PullRequest
0 голосов
/ 23 ноября 2018

Вот моя скрипка:

http://jsfiddle.net/19gwk4q6/

HTML:

<ul>
  <li id="1">
    <input type="text" name="1" class="parent" />
    <input type="hidden" name="rank" value="8" class="rank" />
    <span class="result"></span>
  </li>
  <li id="2">
    <input type="text" name="2" class="parent" />
    <input type="hidden" name="rank" value="1.75" class="rank" />
    <span class="result"></span>
  </li>
  <li id="3">
    <input type="text" name="1" class="parent" />
    <input type="hidden" name="rank" value="10" class="rank" />
    <span class="result"></span>
  </li>
</ul>

JS:

$(document).on("change", ".parent", function() {
  var sum = 0;
  $(".parent").each(function() {
    var rank = $("input").next(".rank").val();
    sum = $(this).val() * rank;
  });
  $("input").next(".result").val(sum);
});

У меня сформирована серверная сторонаlist и мне нужно умножить входные значения .parent * .rank и получить результат в span.result в каждом <li>.Я пытался использовать функции .closest () и .next(), но это не работает.

Спасибо за помощь!

Ответы [ 2 ]

0 голосов
/ 23 ноября 2018

Вы пробовали

var rank = $(this).siblings(".rank").val();

$(this).siblings(".result").val(sum);
0 голосов
/ 23 ноября 2018

Из 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);
    });

});

ОБНОВЛЕНО ДЕМО

...