使用jQuery添加多个动态值并输出结果

时间:2015-01-22 10:32:06

标签: javascript jquery

所以我的问题是我试图从不同的盒子中添加一堆数字,根据他们的下拉列表进行更改,下拉位是好的,现在我无法添加结果:(!

到目前为止,这是我的尝试:

<select id=discount[0] name=discount[0]>
    <option value=1>option 1</option>
    <option value=2>option 2</option>
</select>
<input class=prices type=text id=postdiscount[0] value=1>

<select id=discount[1] name=discount[1]>
    <option value=1>option 1</option>
    <option value=2>option 2</option>
</select>

<input class=prices type=text id=postdiscount[1] value=2>
    <br>

        total: <div id=netpricestotal></div>

和JS:

var netprice = 0;
$("#discount\\[0\\]").change(function () {

    $("#postdiscount\\[0\\]").val(this.value);
    $(".prices").each(function(index, obj){
            netprice += index.value;
    });
    $("#netpricestotal").text(netprice);

});
$("#discount\\[1\\]").change(function () {

    $("#postdiscount\\[1\\]").val(this.value);
    $(".prices").each(function(index, obj){
            netprice += index.value;
    });
    $("#netpricestotal").text(netprice);

});

的jsfiddle:

http://jsfiddle.net/t75ut97f/12/

谢谢!

编辑:

谢谢大家,设法用Number()(http://jsfiddle.net/t75ut97f/16/)自己修复它也看到了使用parseint替代方法的接受答案。

2 个答案:

答案 0 :(得分:1)

你没有任何关于班级netprices的元素,你的意思是prices(输入)。此外,您需要parseInt()值才能将其转换为数字。

netprice事件中移动change var以重置它。

看到它正常工作here

$("#discount\\[0\\]").change(function () {
    var netprice = 0;
    $("#postdiscount\\[0\\]").val(this.value);
    $(".prices").each(function (index, obj) {
        netprice += parseInt($(this).val());
    });
    $("#netpricestotal").text(netprice);

});
$("#discount\\[1\\]").change(function () {
    var netprice = 0;
    $("#postdiscount\\[1\\]").val(this.value);
    $(".prices").each(function (index, obj) {
        netprice += parseInt($(this).val());
    });
    $("#netpricestotal").text(netprice);
});

答案 1 :(得分:-2)

我希望chained jQuery plugin能满足您的需求