1

我正在使用下面的代码将数量乘以价格。该代码工作正常,但是当我有不止一行时,它会将第一行的价格添加到第二行

如何使价格仅显示该行而不显示前一行?

我已经创建了一个小提琴来展示我正在尝试做的事情

http://jsfiddle.net/STpP3/

<!DOCTYPE html>
<html>
<head>
  <meta http-equiv="content-type" content="text/html; charset=UTF-8">
  <title>demo</title>

  <script type='text/javascript' src='//code.jquery.com/jquery-1.9.1.js'></script>


  <style type='text/css'>

  </style>

          <script type='text/javascript'>//<![CDATA[ 
$(window).load(function(){
$('.minus, .plus').click(function (e) {
    e.preventDefault();    
    var $input = $(this).siblings('.qty');
    var val = parseInt($input.val(), 10);
    $input.val(val + ($(this).hasClass('minus') ? -1 : 1));
});

});//]]>  

</script>

<script type='text/javascript'>//<![CDATA[ 
$(function(){
$('.minus, .plus').click(function () {
    var sibs = $(this).siblings();
    var quantity = $('.qty').val();

    var priceItem = sibs.filter(".price").val(); 

    var total2 = quantity * priceItem;  
    var total = (+total2 + +priceItem);  



    sibs.filter(".total").val(total);












});
});//]]>  

</script>


</head>
<body>

 <?php 
$x=1; 
while($x<=5)
  {
  ?>
  <div>Qty:
        <span  class='minus' class="signrm">&mdash;</span> <input type="text" name="qty" class="txt qty" value="1" />    <span class='plus' >+</span>
    <br/>Price:
    <input type="text" name="price" class="txt price" value="500" />
    <br/>Total:
    <input type="text" name="total" class="txt total" value="500" />
</div>
<?php 
 $x++; } ?>


</body>


</html>
4

1 回答 1

2

你在正确的轨道上,只要确保你从按钮的兄弟姐妹那里得到所有的值。此外,您的加载点击事件窗口也不起作用。我无法看到您遇到的同样问题。但我会在一次点击事件中完成所有代码,而不是两次。

这是一个小提琴示例,下面是代码。

 $(function () {
    $('.minus, .plus').click(function () {
        var $qty = $(this).siblings('.qty');
        var qtyCounter = parseInt($qty.val());
        if($(this).hasClass('plus'))
            qtyCounter++; 
        else
            qtyCounter--;
        $qty.val(qtyCounter);
        var pricePerUnit = $(this).siblings('.price').val();
        var quantity = $(this).siblings('.qty').val();
        var total = quantity * pricePerUnit;
        $(this).siblings('.total').val(total);
    });
});
于 2013-11-04T21:07:06.150 回答