从元素文本中删除字符串的最后一个实例

问题描述 投票:0回答:1

我正在尝试从div中删除最后一个CHF文本。我无法使它正常工作。

$(document).ready(function() {
  var myval = $(".gui-big.guy-price strong").text();
  console.log(myval);
  myval = myval.substring(0, myval.length - 3);
  $("div.gui-big.guy-price strong").val(myval);
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="gui-item gui-big">
  <div class="gui-desc">
    <strong>Gesamt inkl. MwSt:</strong>
  </div>
  <div class="gui-price">
    <strong>CHF53,70 CHF</strong>
  </div>
jquery dom
1个回答
1
投票
首先请注意,您的选择器不正确。它有一个错字,并且需要空格来表明您正在寻找子元素。

要替换一个字符串在另一个字符串中的最后一次出现,您可以使用正则表达式。为了更加简洁,您可以为text()提供一个函数,该函数接受当前值作为参数并返回要设置的新值。试试这个:

$(document).ready(function() { $('.gui-big .gui-price strong').text((i, t) => t.replace(/CHF([^CHF]*)$/, '$1')); });
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="gui-item gui-big">
  <div class="gui-desc">
    <strong>Gesamt inkl. MwSt:</strong>
  </div>
  <div class="gui-price">
    <strong>CHF53,70 CHF</strong>
  </div>
</div>
© www.soinside.com 2019 - 2024. All rights reserved.