首页 > 解决方案 > 将输入值乘以跨度

问题描述

这是我的小提琴:

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

我有服务器端生成的列表,我需要将输入值相乘.parent * .rank并将结果放入每个<li>. 我试图使用.closest ().next()功能,但它不起作用。

谢谢你的帮助!

标签: jquerynextclosestmultiplication

解决方案


从 OP 可以理解,因为没有一个名为use的函数,所以这.result是行不通的。也改变 span$("input").next(".result").val(sum);span.val().text()

 var rank = $("input").next(".rank").val();

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

在这里演示

编辑

基于OP的评论。尝试这个

$(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);
    });

});

更新的演示


推荐阅读