jquery用数量和步数计算总数

时间:2016-02-25 16:47:19

标签: javascript jquery

我需要帮助! 我需要一个jquery脚本来计算总数: 我需要1个输入字段作为数量。 如果数量是: 1到60之间,价格是750, 61到90之间,价格是850, 在91和120之间,价格是995, 我还需要添加带数量输入字段的新行 我需要计算所有的总价。 我已经尝试但不知道该怎么做。

感谢。
我尝试过以下方法:

<script type="text/javascript">
    function miaFunzione() {
        $("#Container").append("<li><input type='text' class='qty' value='' placeholder='superfice' /> <a onclick='miaFunzione()'>aggiungi [+]</a></li>");

        var totale = 0;

        $("#Container li").each(function () {
            var qty = new Number($(this).children('.qty').val());

            if (qty <= 60) {
                prezzo = 750;
            }else if (qty >= 61 && qty <= 90){
                prezzo = 850;
            }else if (qty >= 91 && qty <= 120){
                prezzo = 995;
            };

            totale = totale + prezzo;

        });

        $("#totMoney").html(totale);
    }
</script>

这是html代码

<ul id="Container">
    <li>
        <input type="text" value="" class="qty" placeholder="superfice" /><a onclick="miaFunzione()">aggiungi [+]</a>
    </li>
</ul>
<br />

TOTALE COSTO: € <strong id="totMoney">0</strong>

2 个答案:

答案 0 :(得分:0)

你可以用这个

$(document).ready(function(){
    $('body').on('keyup','li > .qty',function(){
        var totale = 0;

        $("#Container li .qty").each(function () {
            var qty = parseFloat($(this).val());

            if (qty <= 60) {
                prezzo = 750;
            }else if (qty >= 61 && qty <= 90){
                prezzo = 850;
            }else if (qty >= 91 && qty <= 120){
                prezzo = 995;
            }

            totale +=  qty + prezzo;

        });

        $("#totMoney").html(totale);
    }); 
    $('body').on('click','li > a',function(){
      $("#Container").append("<li><input type='text' class='qty' value='' placeholder='superfice' /> <a>aggiungi [+]</a></li>");

    });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul id="Container">
    <li>
        <input type="text" value="" class="qty" placeholder="superfice" /><a>aggiungi [+]</a>
    </li>
</ul>
<br />

TOTALE COSTO: € <strong id="totMoney">0</strong>

答案 1 :(得分:0)

检查我为你制作的这个jsfiddle https://jsfiddle.net/n5zoyxq3/

function miaFunzione() {
    $("#Container").append("<li><input type='text' class='qty' value='' placeholder='superfice' /> <a onclick='miaFunzione()'>aggiungi [+]</a></li>");

    var totale = 0;
    var prezzo = 0;

    $("#Container li").each(function () {
        var qty = parseFloat($(this).children('.qty').val());
    if(qty > 0) {
      if (qty <= 60) {
        prezzo = 750;
      }else if (qty >= 61 && qty <= 90){
        prezzo = 850;
      }else if (qty >= 91 && qty <= 120){
        prezzo = 995;
      };
    }

        totale = totale + prezzo;
        prezzo = 0;

    });

    $("#totMoney").html(totale);
}

我改变了行“var qty = new Number($(this).children('。qty')。val());”至 “var qty = parseFloat($(this).children('。qty')。val());”只是为了避免在'.qty'没有数值的情况下出错。

在该行下面,我添加了一个“if”来检查var qty是否有值,因为你的用户可以添加各种没有值的输入。

在将prezzo分配给totale之后,我将prezzo更改为“0”,因此在下一个循环中,prezzo将以零值开始。

希望它对你有所帮助。