为什么(+)在Javascript中结合?

时间:2017-01-13 04:34:09

标签: javascript

我的代码:

var total_quantity = parseInt(0);
var total_price = parseFloat(0);
$('#ticket_list').each(function () {
    total_quantity += parseInt($(this).find('li .ticket_quantity option:selected').text());
    total_price += parseFloat($(this).find('li .ticket_price').attr('data-val'));
});
console.log(total_quantity, total_price);

当门票数量为34时,它会提供34 为什么??我做错了什么?
票价相同

我的HTML代码:

<ul class="list-unstyled" id="ticket_list">
<li class="ticket_box">
    <div class="pull-right" style="width:70px">
        <div class="form-group">
            <select
                class="form-control ticket_quantity"
                id=""
                name="count_1"
                onchange="theEvent.calcTickets();">
                <option value="0">0</option>
                <option value="1">1</option>
                <option value="2">2</option>
                <option value="3">3</option>
                <option value="4">4</option>
                <option value="5">5</option>
                <option value="6">6</option>
                <option value="7">7</option>
                <option value="8">8</option>
                <option value="9">9</option>
            </select>
        </div>
    </div>
    <div style="width:calc(100% - 100px)">
        <h4 class="ticket_name">free1</h4>
        <span class="ticket_price" data-val="0">БЕСПЛАТНЫЙ</span>
    </div>
    <div class="clearfix"></div>
</li>
<li class="ticket_box">
    <div class="pull-right" style="width:70px">
        <div class="form-group">
            <select
                class="form-control ticket_quantity"
                id=""
                name="count_2"
                onchange="theEvent.calcTickets();">
                <option value="0">0</option>
                <option value="1">1</option>
                <option value="2">2</option>
                <option value="3">3</option>
                <option value="4">4</option>
                <option value="5">5</option>
                <option value="6">6</option>
                <option value="7">7</option>
                <option value="8">8</option>
                <option value="9">9</option>
            </select>
        </div>
    </div>
    <div style="width:calc(100% - 100px)">
        <h4 class="ticket_name">Общий доступ 10</h4>
        <span class="ticket_price" data-val="11">11 сомони</span>
    </div>
    <div class="clearfix"></div>
</li>

2 个答案:

答案 0 :(得分:2)

您正在使用each函数迭代错误的内容。

而不是 $('#ticket_list').each(...

你应该使用 $('#ticket_list li').each(...

然后从内部li中删除find

答案 1 :(得分:0)

根据我的理解,您为两个选择框指定了相同的班级名称&#39; ticket_quantity&#39;,我认为您必须设置&#39; ticket_price&#39;名称到第二个选择框。