使用jquery在同一div中选择数据

时间:2013-03-05 17:04:48

标签: jquery

我想制作一个像这样的小型计算页面

1000 X _ = 
 500 X _ = 
   Total = 

我想要做的是当有人在“_”中输入数值时,我会自动显示乘法,而不是总和。

<div>
    <div> 
        <span class="value">1000</span> X
        <input type="text" size="4" class="inputdata"/> = 
        <span class="multiplydate"></span>
    </div>
    <div>
        <span class="value">500</span> X
        <input type="text" size="4" class="inputdata" /> = 
        <span class="multiplydate"></span>
    </div>
    <div>
        TOTAL = 
        <span class="totaldata"></span>
    </div>
</div>

然后使用jquery进行计算:

$('.inputdata').live('onChange', function () {
    $(this).closest('.multiplydata').html(
        $(this).closest('.value').html() *         
            $(this).closest('.inputdata').val()
    );
});

代码有什么问题?似乎没有任何事情发生。

2 个答案:

答案 0 :(得分:3)

live已替换为on请更改为:

$('.inputdata').on('onChange',function(){ 
       $(this).closest('.multiplydata')
       .html($(this).closest('.value')
       .html()*$(this).closest('.inputdata').val());
 });

答案 1 :(得分:1)

更改:

  • onchange已被keyup
  • 取代
  • $('.multiplydata') NextClosest所以将Next更改为$('.inputdata').live('keyup', function () { var SpanData = $(this).closest(":has(.value)").find('.value').html(); var Result = $(this).next(".multiplydate"); Result.html(SpanData * $(this).val()); //Total Part var sum=0; $('.multiplydate').each(function() { sum += Number($(this).html()); }); $(".totaldata").html(sum); });

小提琴示例http://jsfiddle.net/RYh7U/113/

Jquery:

{{1}}