opencart上的站点,主题是标准的。我想确保在选择一个选项时(例如,尺寸 S、M、L,产品的价格发生变化,从包装盒中制作得有点不太好)
我想用js来做。
逻辑很简单——我取产品的价格,我取期权的价格——我对它们进行某些操作以获得足够的价格并显示所有内容。也就是说,我有单选按钮,我在它们上面挂了一个事件——当我点击时,我得到值,改变它们并显示它们。
php代码
<div class="radio">
<input type="radio" class="radio__input" id="option-value-<?php echo $option_value['product_option_value_id']; ?>" name="option[<?php echo $option['product_option_id']; ?>]" value="<?php echo $option_value['product_option_value_id']; ?>" price="<?php echo $option_value['price']; ?>"
onclick="priceProduct()" />
<label class="radio__label" for="option-value-<?php echo $option_value['product_option_value_id']; ?>">
...
JS代码
function priceProduct() {
let lengthPrice = 4;
let priceOld;
if (typeof(priceOld) == 'undefined') {
let priceOld = 0; //если переменная не объявлена, объявим её, переменная нужна для фиксации цены выбранной опции, что-бы было можно "откатиться назад" при выборе другой опции
}
let currentPrice = parseInt(document.querySelector('.product__price').textContent);
console.log(currentPrice);
let optionPrice = document.querySelector('.radio__input').getAttribute('price');
目前,整个问题都在最后一行。我从输入中获取价格属性,其中包含选项的价格,但是我有2-3个按钮,并且值仅取1。如何指定应从发生点击的输入中获取值? 我需要以某种方式指定这一点,但我没有足够的知识......
您是否需要
price从选中的收音机或刚刚单击的收音机中获取属性?如果是后者,那么您肯定需要一台收音机 - 也许最好使用带有唯一可能选择的复选框?如果您仍然使用收音机,
optionPrice则来自 DOM 中第一个标记输入的价格值将进入其中,如果复选框,则分别来自唯一的一个。如果您需要确切的收音机和刚刚单击的收音机,那么您需要使用点击处理程序和
event.target