Я работаю над сайтом электронной торговли, и продукты динамически генерируются с помощью цикла foreach, внутри каждого продукта есть параметры продукта, когда выбран вариант продукта. Я предполагаю, что это по цене Обновить.jQuery + PHP Динамически созданный контент
У меня это работает, однако jQuery обновляет каждый экземпляр цены на странице, а опция выбора работает только для первого созданного элемента. Как добавить/привязать jQuery к объекту/каждому продукту и изменить цену на индивидуальной основе?
<?php
foreach($items as $item):
<?php echo $the_name ?>
<select id="choose">
foreach($selection as $select):
<option value="$some_var" data-value="$the_price">$some_var</option>
endforeach;
</select>
<div id="price"><?php echo $the_price ?></div>
endforeach;
?>
<script type="text/javascript">
jQuery('#choose').change(function (event) {
jQuery('#price').html(jQuery('#choose option:selected').data('value'));
}).change();
</script>
Рабочий код
После игры около на некоторое время, и принимая во внимание другие комментарии ниже, этот код работает.
<script type="text/javascript">
jQuery('.choose').change(function (event) {
var $t = jQuery(this);
var price = $t.find('option:selected').data('value');
$t.parents('form').find('.price').html(price);
}).change();
</script>
Не используйте один и тот же атрибут «id» для нескольких элементов. Вместо этого используйте «класс». – hindmost
Является ли цена общей суммой всех значений '.choose' или просто значение измененного selectbox? Кроме того, какую версию jQuery вы используете? – tftd