如何移除div元素文本中的最后一个CHF字符串?
问题分析与修复方案
咱们来一步步排查你的代码问题哈:
1. 类名拼写错误
你HTML里的价格容器类是gui-price,但代码里写成了guy-price(把gui误写为guy),这会导致选择器找不到目标元素,自然没法修改内容。
2. 错误使用.val()方法
<strong>是普通文本元素,不是输入框这类表单控件,设置它的内容应该用.text(),而.val()仅适用于表单元素的value值操作。
3. 更稳妥的文本处理方式
你用substring(0, myval.length -3)截掉最后三个字符的方式,虽然能去掉末尾的CHF,但如果文本格式有变化(比如末尾不是刚好三个字符)就会出问题,不如用正则表达式精准替换掉末尾的CHF:
修正后的完整代码
$(document).ready(function() { // 正确选择目标元素(修正类名拼写) var $priceStrong = $(".gui-big .gui-price strong"); var myval = $priceStrong.text(); console.log(myval); // 用正则精准替换掉末尾的CHF myval = myval.replace(/CHF$/, ''); // 用.text()设置普通元素的文本内容 $priceStrong.text(myval); });
额外优化(可选)
如果想去掉替换后可能残留的空格,可以在替换后加上.trim():
myval = myval.replace(/CHF$/, '').trim();
验证用HTML结构
<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> <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
以后调试时,可以先用console.log($(".gui-big .gui-price strong"))检查是否能拿到目标元素,这样能快速排查选择器类的问题~
内容的提问来源于stack exchange,提问作者Stefan Spindler
相关产品推荐
相关产品推荐

