jQuery:单击更改div文本,仅可使用一次

时间:2019-06-27 12:30:45

标签: javascript jquery

这是我的代码:

$(".yearly-package").click(function() {
  $(".electro-price")
    .find(".woocommerce-Price-amount")
    .text(function() {
      var yearprice = $("#year_price").text();
      return $(this)
        .text()
        .replace("99.00", yearprice);
    });
});

$(".halfyear-package").click(function() {
  $(".electro-price")
    .find(".woocommerce-Price-amount")
    .text(function() {
      var halfyearprice = $("#halfyear_price").text();
      return $(this)
        .text()
        .replace("99.00", halfyearprice);
    });
});

$(".single-package").click(function() {
  $(".electro-price")
    .find(".woocommerce-Price-amount")
    .text(function() {
      var oneprice = $("#one_price").text();
      return $(this)
        .text()
        .replace("99.00", oneprice);
    });
});

单击div时,价格将改变。但是,如果我再次单击其他按钮-价格将不会再次更改。

怎么了?为什么只能在首次点击时使用?

这是html

<div class="ps-package single-package first-pack" data-val="1">
<div class="ps-name">Single Package</div>
</div>

<span class="electro-price"><ins><span class="woocommerce-Price-amount amount"><span class="woocommerce-Price-currencySymbol">$</span>99.00</span></ins> <del><span class="woocommerce-Price-amount amount"><span class="woocommerce-Price-currencySymbol">$</span>150.00</span></del></span>

1 个答案:

答案 0 :(得分:2)

replace(arg1,arg2)函数将在文本中查找arg1,以供arg2替换。

它在第一种情况下有效,因为arg1 =“ 99.00”,而您将其替换为arg2(例如,“ 44.00”)。在第二种情况下,您正在使用arg1 =“ 99.00”或已将其更改为arg2(“ 44.00”)。因此它找不到arg1为“ 99.00”,因为您现在在文本中输入的是“ 44.00”,因此必须用第一种情况下替换它的值来更改“ 99.00”。