Parcourez plusieurs éléments et calculez la remise de prix pour chaque élément
P粉506963842
P粉506963842 2023-09-02 17:14:31
0
1
409

J'essaie de trouver la différence en pourcentage entre l'ancien prix et le nouveau prix pour chaque

. Actuellement, mon code n'obtient que la différence en pourcentage du premier
et boucle la même différence en pourcentage avec le
;milieu restant. Quelqu'un sait-il comment mettre à jour ce code pour cibler chaque
au lieu de simplement parcourir le premier ? Je souhaite implémenter cette fonctionnalité en utilisant du JavaScript pur, aucun jQuery requis.

const priceDifference = () => const regPrice = document.querySelector('.old').innerText; const salePrice = document.querySelector('.new').innerText; const priceNumReg = parseFloat(regPrice.substring(1)); const priceNumSale = parseFloat(salePrice.substring(1)); const finalPrice = priceNumReg - priceNumSale ; const pourcentage = document.querySelectorAll('.percentage'); const pour cent = (finalPrice / priceNumReg) * 100 ; pour (i = 0; i < pourcentage.longueur; i++) { if (percentage[i].textContent.trim() === '') { percent[i].textContent += ' (' + percent.toFixed(0) + '% OFF)'; } } } ; priceDifference();
14,00 $
6,00 $
12,00 $
5,00 $
18,00 $
3,00 $

P粉506963842
P粉506963842

répondre à tous (1)
P粉616383625

Vous devez parcourir la gamme de chacun.price元素,而不是每个.percentage,因为你试图执行的每个单独的计算都是基于一个单独的

.

Effectue tous les calculs à l'intérieur de la boucle, c'est-à-dire l'un despriceElement(它是你的

éléments actuels).

Vous pouvez maintenant utiliserpriceElement.querySelector,而不是document.querySelector.

document.querySelector在整个文档中找到第一个匹配的元素,而priceElement.querySelector将在该范围内找到第一个匹配的元素:priceElement.

La fonction ressemble donc davantage à ceci :

const priceDifference = () => { const price = document.querySelectorAll(".price"); for (i = 0; i < price.length; i++) { const priceElement = price[i]; const regPrice = priceElement.querySelector(".old").innerText; const salePrice = priceElement.querySelector(".new").innerText; const percentage = priceElement.querySelector(".percentage"); const priceNumReg = parseFloat(regPrice.substring(1)); const priceNumSale = parseFloat(salePrice.substring(1)); const finalPrice = priceNumReg - priceNumSale; const percent = (finalPrice / priceNumReg) * 100; if (percentage.textContent.trim() === '') { percentage.textContent += ' (' + percent.toFixed(0) + '% OFF)'; } } };

Ce code estvalide, mais il y a encore du travail à faire, comme manqueri的声明和innerTextvs.textContent, mais ce code peut aussi être raccourci comme ceci :

const parseCurrencyValue = ({ textContent }) => Number.parseFloat(textContent.replace(/^[^-+0-9.]*/u, "")), priceDifference = () => Array.from(document.querySelectorAll(".price")) .forEach((priceElement) => { const [ regularPrice, salePrice ] = [ ".old", ".new" ] .map((selector) => parseCurrencyValue(priceElement.querySelector(selector))), discount = 1 - (salePrice / regularPrice), percentageElement = priceElement.querySelector(".percentage"); if (percentageElement.textContent.trim() === "") { percentageElement.insertAdjacentText("beforeend", ` (${Math.round(discount * 100)} % off)`); } }); priceDifference();
.percentage { text-transform: uppercase; }
.00
.00
.00
.00
.00
.00
    Derniers téléchargements
    Plus>
    effets Web
    Code source du site Web
    Matériel du site Web
    Modèle frontal
    À propos de nous Clause de non-responsabilité Sitemap
    Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!