我的代码:
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);
当门票数量为3
且4
时,它会提供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>
答案 0 :(得分:2)
您正在使用each
函数迭代错误的内容。
$('#ticket_list').each(...
你应该使用
$('#ticket_list li').each(...
然后从内部li
中删除find
。
答案 1 :(得分:0)
根据我的理解,您为两个选择框指定了相同的班级名称&#39; ticket_quantity&#39;,我认为您必须设置&#39; ticket_price&#39;名称到第二个选择框。