Javascript 计算香草JS中产品的折扣%
嗨,我想做的是计算使用Vanilla JS销售的产品的折扣百分比。因此,如果存在销售价格“.product-price\uuuuu折扣”,那么我想计算出该产品的折扣百分比 到目前为止,我能计算出第一种产品的折扣。在第二个产品上,它似乎打印了与第一个产品相同的折扣&最后一个产品不在销售中,因此忽略这一点是正确的。我还知道.length有一个错误,但不知道如何解决Javascript 计算香草JS中产品的折扣%,javascript,foreach,percentage,discount,Javascript,Foreach,Percentage,Discount,嗨,我想做的是计算使用Vanilla JS销售的产品的折扣百分比。因此,如果存在销售价格“.product-price\uuuuu折扣”,那么我想计算出该产品的折扣百分比 到目前为止,我能计算出第一种产品的折扣。在第二个产品上,它似乎打印了与第一个产品相同的折扣&最后一个产品不在销售中,因此忽略这一点是正确的。我还知道.length有一个错误,但不知道如何解决 var模式=/[^0-9\.]/g; var price=document.querySelectorAll(“.product-sl
var模式=/[^0-9\.]/g;
var price=document.querySelectorAll(“.product-slab___;u price”);
price.forEach(函数(el){
如果(!el.querySelector('.product-price\uu折扣')。长度){
var wasPrice=parseFloat(document.querySelector('.product-price_uuu-was')).textContent.replace(pattern,“”)/100;
var newPrice=parseFloat(document.querySelector('.product-price\uuu-discount').textContent.replace(pattern,“”)/100;
var减去价格=(wasPrice-newPrice);
var dividePrice=(减去价格/wasPrice);
var乘数=(分割价格*100);
el.querySelector('.discountPercentage').innerHTML=multiplyPrice.toFixed(0)+“和#37”;
}
});代码>
。产品价格{
文字装饰:线条贯通;
}
.产品价格折扣{
颜色:红色;
}
Was€10,00
现在&欧元;8,00
&欧元;15,00
&欧元;10,00
&欧元;15,90
可以在这里找到问题
var wasPrice = parseFloat(document.querySelector('.product-price__was').textContent.replace(pattern, "")) / 100;
var newPrice = parseFloat(document.querySelector('.product-price__discount').textContent.replace(pattern, "")) / 100;
您正在使用document.querySelector
,但是,您需要forEach
提供的el
元素,如下所示:
var wasPrice = parseFloat(el.querySelector('.product-price__was').textContent.replace(pattern, "")) / 100;
var newPrice = parseFloat(el.querySelector('.product-price__discount').textContent.replace(pattern, "")) / 100;
另外,为了防止长度
错误,请检查查询选择器
是否找到了任何内容,方法是检查是否为空
,而不是关闭.length
:
if (el.querySelector('.product-price__discount') !== null) {
请看这个改进的示例:
var模式=/[^0-9\.]/g;
var price=document.querySelectorAll(“.product-slab___;u price”);
price.forEach(函数(el){
如果(el.querySelector('.product-price\uu折扣')!==null){
var wasPrice=parseFloat(el.querySelector('.product-price_uuu-was')).textContent.replace(pattern,“”)/100;
var newPrice=parseFloat(el.querySelector('.product-price\uuuu-discount').textContent.replace(pattern,“”)/100;
var折扣=100-(新价格/原价)*100;
el.querySelector('.discountPercentage').innerHTML=discount.toFixed(0)+“和#37”;
}
});代码>
。产品价格{
文字装饰:线条贯通;
}
.产品价格折扣{
颜色:红色;
}
Was€10,00
现在&欧元;8,00
&欧元;15,00
&欧元;10,00
&欧元;15,90
感谢您的介绍和解释。唯一的问题是计算结果似乎是错误的。他们应该打20%和33%的折扣,如果现在是另一种方式,那么计算应该是:var折扣=100-(newPrice/wasPrice)*100代码>因为您正在寻找差异。我已经确定了我的答案!是的,太好了,再次感谢你的解释。