首页 > 解决方案 > 如何在没有事件的情况下执行功能?

问题描述

由@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">&#x20B9;9,728</div>
    <div class="DiscPrice1">&#x20B9;5,435</div>
    <div class="demo1"></div>
  </div>
</div>

<br>

<div>
  <div class="seen" onclick="discount(this)">
    <div class="TotalPrice">&#x20B9;15,670</div>
    <div class="DiscPrice">&#x20B9;13,785</div>
    <div class="demo"></div>
  </div>
</div>

标签: javascripthtmlcss

解决方案


这是您可以在问题编辑中看到的上一个问题的答案

这就是我需要在没有任何事件(如 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">&#x20B9;9,728</div>
    <div class="DiscPrice">&#x20B9;5,435</div>
    <div class="demo"></div>
  </div>
</div>

<br>

<div>
  <div class="seen" onclick="discount(this)">
    <div class="TotalPrice">&#x20B9;15,670</div>
    <div class="DiscPrice">&#x20B9;13,785</div>
    <div class="demo"></div>
  </div>
</div>


推荐阅读