JS脚本只能在一个html卡上使用,而不是全部

菲拉斯·里汉(Firas Rihan)

因此,如果我从html中的select标签中选择了货币,则此脚本会更改货币和符号,但是问题是它仅更改了第一张卡的货币和符号,而其他卡没有更改。有没有一种方法可以同时更改它们而不用为每张卡编写脚本?select的工作方式如下:如果我选择LBP并且货币为USD,则该数字将乘以8500,如果选择美元且货币为LBP,则它将除以8500,而如果我选择的货币是选择然后什么都不会发生。

HTML:

<div class="card">
        <img class="imgcar" src="cars/402088-2020-land-rover-range-rover-velar.jpg" alt="Avatar" style="width:16em">
        <div class="container">
          <h4><b>Range Rover Velar</b><br><b>4 Doors</b><br><b> 5 Passengers</b> </h4>
          <div><p id="price">100</p><p id="symbol">$</p><p id="duration">/24hrs</p></div>
        </div>
      </div>
      <div class="card">
        <img class="imgcar" src="cars/2020-BMW-M8-Competition-Convertible-02-e1570483239877.jpg" alt="Avatar"
          style="width: 16em;">
        <div class="container">
          <h4><b>BMW M8</b><br><b>2 Doors</b><br><b> 2 Passengers</b></h4>
          <p id="price">150</p><p id="symbol">$</p><p id="duration">/24HRS</p>
        </div>
      </div>

JS:

function report(currencyy) {
var price = document.getElementById("price");
var symbol = document.getElementById("symbol");

if (currencyy == "lbp") {
  if (symbol.textContent == "$") {
    symbol.textContent = "lbp";
    var text = price.textContent;
    var number = parseInt(text) * 7500;
    price.textContent = number;
  }
 }
 if (currencyy == "usd") {
  if (symbol.textContent == "lbp") {
    symbol.textContent = "$";
    var text = price.textContent;
    var number = parseInt(text) / 7500;
    price.textContent = number;
  }
 }
}
礼节

使用document.querySelectorAll()并遍历卡片节点:

const currencies = { //--> store the currency data
  lbp: {
    symb: "lbp",
    fn: value => Number(value) * 7500
  },
  usd: {
    symb: "$",
    fn: value => Number(value) / 7500
  }
};

function report(currencyy) {
  var cardNodes = document.querySelectorAll(".card");
  Array.from(cardNodes).forEach(card => { // --> update the card node data
    const symbNode = card.querySelector("#symbol");
    const priceNode = card.querySelector("#price");
    const { symb, fn } = currencies[currencyy];
    if (symbNode.textContent === symb) return;
    symbNode.textContent = symb;
    priceNode.textContent = fn(priceNode.textContent);
  });

  
}

report("usd");
<div id="app"></div>
<div class="card">
    <img class="imgcar" src="cars/402088-2020-land-rover-range-rover-velar.jpg" alt="Avatar" style="width:16em">
    <div class="container">
        <h4><b>Range Rover Velar</b><br><b>4 Doors</b><br><b> 5 Passengers</b> </h4>
        <div>
            <p id="price">100</p>
            <p id="symbol">$</p>
            <p id="duration">/24hrs</p>
        </div>
    </div>
</div>
<div class="card">
    <img class="imgcar" src="cars/2020-BMW-M8-Competition-Convertible-02-e1570483239877.jpg" alt="Avatar"
          style="width: 16em;">
    <div class="container">
        <h4><b>BMW M8</b><br><b>2 Doors</b><br><b> 2 Passengers</b></h4>
        <p id="price">150</p>
        <p id="symbol">$</p>
        <p id="duration">/24HRS</p>
    </div>
</div>

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

选择第一个合并值,而不是全部

来自分类Dev

XSD指定一个只能在XML中使用一次的属性

来自分类Dev

只能在JOIN中的一个表上限制

来自分类Dev

我如何一次只能在一个元素上激活.hover()函数

来自分类Dev

只能在1个工作簿上运行一个VBA

来自分类Dev

弹出式窗口只能在一个浏览器上运行,而不能在另一个浏览器上运行

来自分类Dev

OpenCL演示程序只能在一个系统上运行,而不能在另一个非常相似的VirtualBox系统上运行

来自分类Dev

jQuery隐藏/显示一个,而不是全部

来自分类Dev

如何一次只能一次访问一个网页?(JS + HTML)

来自分类Dev

C#属性只能在具有另一个属性的类中的方法上

来自分类Dev

如果线程B希望看到的变化线程A品牌,只能在最后一个变化是volatile变量,而不是全部?

来自分类Dev

只能在一个文件中使用中间证书和根证书来验证证书

来自分类Dev

如何从地图而不是全部渲染一个对象?

来自分类Dev

如何创建只能在一个线程上同时执行的功能?

来自分类Dev

提供“类型别名”的Typescript编译器只能在.ts文件中使用。在一个js文件中

来自分类Dev

JS脚本只能在一个html卡上使用,而不是全部

来自分类Dev

选择第一个合并值,而不是全部

来自分类Dev

只能在JOIN中的一个表上限制

来自分类Dev

如何维护几个只能在一个对象中存在一个对象的集合?

来自分类Dev

一次只能在网页上打开1个分区的脚本

来自分类Dev

“当未使用EXISTS引入子查询时,只能在选择列表中指定一个表达式”错误

来自分类Dev

jQuery脚本只能在一个方向上正常工作

来自分类Dev

json转换器仅使用最后一个字典的最后一个键值,而不是全部

来自分类Dev

17.04 Dual Monitor问题-程序在一个屏幕上打开,但只能在另一个屏幕上进行交互

来自分类Dev

厨房属性只能在一个平台上使用

来自分类Dev

在一个脚本中创建变量并在另一个脚本中使用。jQuery/HTML/JS

来自分类Dev

Python Web Scraper:我的脚本只是打印第一个,而不是全部?

来自分类Dev

只能遍历给定目录的第一个子目录,但不是全部

来自分类Dev

仅在一个选项卡上的操作脚本

Related 相关文章

  1. 1

    选择第一个合并值,而不是全部

  2. 2

    XSD指定一个只能在XML中使用一次的属性

  3. 3

    只能在JOIN中的一个表上限制

  4. 4

    我如何一次只能在一个元素上激活.hover()函数

  5. 5

    只能在1个工作簿上运行一个VBA

  6. 6

    弹出式窗口只能在一个浏览器上运行,而不能在另一个浏览器上运行

  7. 7

    OpenCL演示程序只能在一个系统上运行,而不能在另一个非常相似的VirtualBox系统上运行

  8. 8

    jQuery隐藏/显示一个,而不是全部

  9. 9

    如何一次只能一次访问一个网页?(JS + HTML)

  10. 10

    C#属性只能在具有另一个属性的类中的方法上

  11. 11

    如果线程B希望看到的变化线程A品牌,只能在最后一个变化是volatile变量,而不是全部?

  12. 12

    只能在一个文件中使用中间证书和根证书来验证证书

  13. 13

    如何从地图而不是全部渲染一个对象?

  14. 14

    如何创建只能在一个线程上同时执行的功能?

  15. 15

    提供“类型别名”的Typescript编译器只能在.ts文件中使用。在一个js文件中

  16. 16

    JS脚本只能在一个html卡上使用,而不是全部

  17. 17

    选择第一个合并值,而不是全部

  18. 18

    只能在JOIN中的一个表上限制

  19. 19

    如何维护几个只能在一个对象中存在一个对象的集合?

  20. 20

    一次只能在网页上打开1个分区的脚本

  21. 21

    “当未使用EXISTS引入子查询时,只能在选择列表中指定一个表达式”错误

  22. 22

    jQuery脚本只能在一个方向上正常工作

  23. 23

    json转换器仅使用最后一个字典的最后一个键值,而不是全部

  24. 24

    17.04 Dual Monitor问题-程序在一个屏幕上打开,但只能在另一个屏幕上进行交互

  25. 25

    厨房属性只能在一个平台上使用

  26. 26

    在一个脚本中创建变量并在另一个脚本中使用。jQuery/HTML/JS

  27. 27

    Python Web Scraper:我的脚本只是打印第一个,而不是全部?

  28. 28

    只能遍历给定目录的第一个子目录,但不是全部

  29. 29

    仅在一个选项卡上的操作脚本

热门标签

归档