Я немного изменил ваш код для HTML jQuery.
Проверьте jsFiddle , чтобы убедиться, что это то, что вы ищете.
Что происходит
Для каждой комнаты мы складываем взрослых идети и положить эту сумму в массиве.Затем этот массив помещается в текстовое поле.
Как
В основном я удалил класс room
из элементов select
и переместил его в клонированный div
,Я сделал это, чтобы вы могли легко зациклить комнаты.Получив это, вы просто перебрали selects
, который я дал классу person
.
Вот соответствующий jQuery
function calculateNumbers(){
//initialize variables
var gsNumberOfTravelers = [];
var total = 0;
//loop over each room
$('.room').each(function() {
total = 0;
//loop over the persons that are apart of the current room
$(this).children('.person').each(function(){
//add to a total
total = total + parseInt($(this).val());
});
//push the total of the room to the room array
gsNumberOfTravelers.push(total);
});
$("[name='gsNumberOfTravelers']").val(gsNumberOfTravelers.join('|'));
};
А вот соответствующий HTML
<div id="cloneWrap1" class="room">
<!-- Clone Item Start -->
number of persons room<br />
Adults
<select name="cloneElement1" id="item_dup_1" class="person">
<option value="1">1</option>
<option selected value="2">2</option>
<option value="3">3</option>
</select>
Children
<select class="childrenRoom person">
<option selected value="0">0</option>
<option value="1">1</option>
<option value="2">2</option>
</select>
</div>