Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/silverlight/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript JS动态价格/抓取期权价格并添加到基价_Javascript_Shopify - Fatal编程技术网

Javascript JS动态价格/抓取期权价格并添加到基价

Javascript JS动态价格/抓取期权价格并添加到基价,javascript,shopify,Javascript,Shopify,我在一家shopify商店工作,它使用了一个附加的产品选项插件。插件本身工作得很好,但是它不能用所选的选项更新价格。插件输出如下选项: <select id="firstOption"> <option value="option1 +400,00€">option1 +400,00€</option> <option value="option2 +200,00€">option2 +2

我在一家shopify商店工作,它使用了一个附加的产品选项插件。插件本身工作得很好,但是它不能用所选的选项更新价格。插件输出如下选项:

<select id="firstOption">
<option value="option1 +400,00€">option1 +400,00€</option>
<option value="option2 +200,00€">option2 +200,00€</option>
<option value="option3 +100,00€">option3 +100,00€</option>
</select>
let priceFromTheme = document.getElementById('moneymoney');
let priceFromThemeInner = priceFromTheme.innerHTML;
let priceFromThemeInnerStripped = Number(priceFromThemeInner.replace(/[^0-9\.]+/g, ""));
document.getElementById("basePrice").innerHTML = priceFromThemeInnerStripped;

document.getElementById("firstOption").addEventListener('change', function () {
let optionsValue = this.value;
let optionStripped = Number(optionsValue.replace(/[^0-9\.]+/g, ""));
document.getElementById("firstOptionPrice").innerHTML = optionStripped;
});
 
document.getElementById("secondOption").addEventListener('change', function () {
let optionsValue = this.value;
let optionStripped = Number(optionsValue.replace(/[^0-9\.]+/g, ""));
document.getElementById("secondOptionPrice").innerHTML = optionStripped;
});
 
document.getElementById("firstOption").addEventListener('change', function () {
let basePrice = Number(document.getElementById('basePrice').innerHTML);
let firstOptionPrice = Number(document.getElementById('firstOptionPrice').innerHTML);
let secondOptionPrice = Number(document.getElementById('secondOptionPrice').innerHTML);
let finalPrice = firstOptionPrice + secondOptionPrice + basePrice;
let finalPriceRound = Math.round(finalPrice*100)/100;; 
document.getElementById("finalPrice").innerHTML = finalPriceRound;
});
   
document.getElementById("secondOption").addEventListener('change', function () {
let preisProdukt = Number(document.getElementById('basePrice').innerHTML);
let preisOptionas = Number(document.getElementById('firstOptionPrice').innerHTML);
let preisOptionsasitos = Number(document.getElementById('secondOptionPrice').innerHTML);
let finalPrice = firstOptionPrice + secondOptionPrice + basePrice;
let finalPriceRound = Math.round(finalPrice*100)/100;; 
document.getElementById("finalPrice").innerHTML = finalPriceRound;
});
在当前示例中,有两个选项。最后的计算很好。但如果只选择了一个选项,我会得到一个NaN作为最终价格。我也认为这是一种不必要的复杂和错误的做法。你有更好的解决办法吗