Gelung melalui berbilang elemen dan hitung diskaun harga untuk setiap elemen
P粉506963842
2023-09-02 17:14:31
<p>Saya cuba mencari perbezaan peratusan antara harga lama dan harga baharu untuk setiap individu <code><div></code>. Pada masa ini, kod saya hanya mendapat perbezaan peratusan daripada <code><div></code> dan menggelungkan perbezaan peratusan yang sama kepada <code><div></code> ;tengah. Adakah sesiapa tahu cara mengemas kini kod ini untuk menyasarkan setiap individu <kod><div></code> Saya ingin melaksanakan fungsi ini menggunakan JavaScript tulen, tiada jQuery diperlukan. </p>
<p>
<pre class="brush:js;toolbar:false;">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;
peratusan const = document.querySelectorAll('.percentage');
peratus const = (Harga akhir / hargaNumReg) * 100;
untuk (i = 0; i < peratusan.panjang; i++) {
jika (peratusan[i].textContent.trim() === '') {
peratusan[i].teksKandungan += ' (' + percent.toFixed(0) + '% OFF)';
}
}
};
priceDifference();</pre>
<pre class="brush:html;toolbar:false;"><div class="price">
<div class="old">$14.00</div>
<div class="new">$6.00</div>
<div class="peratusan"></div>
</div>
<div class="price">
<div class="old">$12.00</div>
<div class="new">$5.00</div>
<div class="peratusan"></div>
</div>
<div class="price">
<div class="old">$18.00</div>
<div class="new">$3.00</div>
<div class="peratusan"></div>
</div></pre>
</p>
Anda perlu mengulangi julat setiap
.price
元素,而不是每个.percentage
,因为你试图执行的每个单独的计算都是基于一个单独的<div class="price">
.Adakah semua pengiraan di dalam gelung, iaitu salah satu daripada
priceElement
(它是你的<div class="price">
elemen semasa).Kini anda boleh menggunakan
priceElement.querySelector
,而不是document.querySelector
.document.querySelector
在整个文档中找到第一个匹配的元素,而priceElement.querySelector
将在该范围内找到第一个匹配的元素:priceElement
.Jadi fungsinya kelihatan lebih seperti ini:
Kod ini sah, tetapi masih ada beberapa kerja yang perlu dilakukan, seperti tiada
i
的声明和innerText
vs.textContent
, tetapi kod ini juga boleh dipendekkan seperti ini: