javascript - 如何在没有事件的情况下执行功能?
问题描述
由@epascarello 解决
- 必须在没有事件的情况下执行功能,以便可以在开始时显示折扣和价格,而无需单击或任何其他事件
您可以在下面的代码段中看到第一个正在自动运行,而第二个在 click 上运行。是否可以自动运行第二个,因为它使用
this
关键字解决了我的大部分问题
如果您需要澄清,请告诉我。任何建议或意见都会有所帮助。
function discount1() {
var sendTotal = document.getElementsByClassName("TotalPrice1")[0].innerHTML;
var send1 = sendTotal.replace(/₹/gi, "");
var send2 = send1.replace(/,/gi, "");
var send3 = Number(send2)
var send = document.getElementsByClassName("DiscPrice1")[0].innerHTML;
var send4 = send.replace(/₹/gi, "");
var send5 = send4.replace(/,/gi, "");
var send6 = Number(send5)
var rest = ((send3 - send6) / send3) * 100
document.getElementsByClassName("demo1")[0].innerHTML = rest.toFixed(0) + "% off";
}
discount1();
function discount(rest) {
var sendTotal = rest.parentElement.getElementsByClassName("TotalPrice")[0].innerHTML;
var send1 = sendTotal.replace(/₹/gi, "");
var send2 = send1.replace(/,/gi, "");
var send3 = Number(send2)
var send = rest.parentElement.getElementsByClassName("DiscPrice")[0].innerHTML;
var send4 = send.replace(/₹/gi, "");
var send5 = send4.replace(/,/gi, "");
var send6 = Number(send5)
var rent = ((send3 - send6) / send3) * 100
rest.getElementsByClassName("demo")[0].innerHTML = rent.toFixed(0) + "% off";
}
<div>
<div class="seen" onclick="discount1()">
<div class="TotalPrice1">₹9,728</div>
<div class="DiscPrice1">₹5,435</div>
<div class="demo1"></div>
</div>
</div>
<br>
<div>
<div class="seen" onclick="discount(this)">
<div class="TotalPrice">₹15,670</div>
<div class="DiscPrice">₹13,785</div>
<div class="demo"></div>
</div>
</div>
解决方案
这是您可以在问题编辑中看到的上一个问题的答案
这就是我需要在没有任何事件(如 onclick 或 onload)的情况下显示折扣百分比。您可以在下面的代码片段中看到。
function discount(rest) {
var sendTotal = rest.parentElement.getElementsByClassName("TotalPrice")[0].innerHTML;
var send1 = sendTotal.replace(/₹/gi, "");
var send2 = send1.replace(/,/gi, "");
var send3 = Number(send2)
var send = rest.parentElement.getElementsByClassName("DiscPrice")[0].innerHTML;
var send4 = send.replace(/₹/gi, "");
var send5 = send4.replace(/,/gi, "");
var send6 = Number(send5)
var rent = ((send3 - send6) / send3) * 100
rest.getElementsByClassName("demo")[0].innerHTML = rent.toFixed(0) + "% off";
}
document.querySelectorAll(".seen").forEach(discount);;
<div>
<div class="seen" onclick="discount(this)">
<div class="TotalPrice">₹9,728</div>
<div class="DiscPrice">₹5,435</div>
<div class="demo"></div>
</div>
</div>
<br>
<div>
<div class="seen" onclick="discount(this)">
<div class="TotalPrice">₹15,670</div>
<div class="DiscPrice">₹13,785</div>
<div class="demo"></div>
</div>
</div>
推荐阅读
- c++ - 对类 c++ 中定义的函数的未定义引用错误
- ios - Swift - 结合 2 个 UIViews 和 1 个无缝边框
- python - 导入烧瓶在我的 macbook pro m1 芯片上不起作用
- javascript - 笑话:ReferenceError:regeneratorRuntime 未定义
- python - 如何填充一行文本框中的下一项
- php - 如何将图像转换为文本?
- intel-vtune - VTune GUI 中没有调用堆栈信息
- javascript - 即使我将 a - b 更改为 b - a,排序在 D3 层次结构中也不起作用
- java - java.io.EOFException:读取流数据期间 ZLIB 输入流意外结束
- python - 如何基于多个分隔符(连续的空格)进行分隔