jquery - 在一种情况下去除空格,在另一种情况下添加它们 - jQuery 不起作用
问题描述
在我客户的 WooCommerce 网站的购物篮页面上有一系列 HTML 字符串,这些字符串是从我无法编辑的元数据生成的,因此希望使用 jQuery 进行操作。
本质上,我想让文本更漂亮以提高可用性。
当前输出: BBQ Pack – Disposable×2(£10.00 - 一次),
所需输出: BBQ 包 - 一次性 × 2(10.00 英镑 - 一次)
加价:
<dd class="variation-Extras">
<p>BBQ Pack – Disposable×2 (
<span class="woocommerce-Price-amount amount">
<span class="woocommerce-Price-currencySymbol">£</span>10.00
</span> - One Time ) ,
<br> Bike Pack – Electric×1 (
<span class="woocommerce-Price-amount amount">
<span class="woocommerce-Price-currencySymbol">£</span>15.00
</span> - Per Day ) ,
</p>
</dd>
下面的 jQuery 抛出 .trim is not a function 的错误:
<script>
jQuery(document).ready(function(UpdateCartItemText) {
jQuery(".variation-Extras p").trim();
});
</script>
关于为什么这不起作用以及如何实现“x”两侧空格的预期结果的任何建议,删除“(”和“)”之前和之后的空格并删除结尾“,”会很棒!
解决方案
该格式应由 WooCommerce 完成。
但是如果你坚持用 jQuery 来做,就像你之前的问题一样......它会是这样的:
jQuery(document).ready(function() {
// Get the HTML
let html = jQuery(".variation-Extras p").html();
// This targets a spaces followed by a coma
html = html.replace(/\s\,/gm, ",");
// This targets an open parenthesis followed by an unknown amount of spaces
html = html.replace(/\((\s){1,}/gm, "(");
// This targets a closing angle bracket followed by an unknown amount of spaces
html = html.replace(/>(\s){1,}</gm, "");
// This targets a spaces followed by a closing parenthesis
html = html.replace(/\s\)/gm, ")");
// This targets the "x" followed by a digit
html = html.replace(/×(\d)/gm, " x $1");
jQuery(".variation-Extras p").html(html);
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<ul>
<dd class="variation-Extras">
<p>BBQ Pack – Disposable×2 (
<span class="woocommerce-Price-amount amount">
<span class="woocommerce-Price-currencySymbol">£</span>10.00
</span> - One Time ) ,
<br> Bike Pack – Electric×1 (
<span class="woocommerce-Price-amount amount">
<span class="woocommerce-Price-currencySymbol">£</span>15.00
</span> - Per Day ) ,
</p>
</dd>
</ul>
正如你所看到的......只是对于看起来非常简单的替换,它已经需要 5 个正则表达式来进行替换。
我强烈建议您查看如何编辑模板,而不是使用 jQuery 进行改进。
推荐阅读
- swift - NavigationView 顶部的边界
- java - PowerMockito 升级后不会模拟私有方法,而是调用真实方法
- amazon-web-services - AWS:如何将 API 网关中定义的资源传递给 lambda?
- python - PyQt5:从设计文件加载菜单
- javascript - 在 OrderBy 函数中,我应该在哪里使用我的字符串转数值函数?
- c - C 链表跳过前 3 行
- python - BeautifulSoup 返回 None 即使元素存在
- react-native - 世博会相机在 Android 设备上崩溃
- apache-spark - 如何在 pyspark 中创建具有两列、一个字符串和一个数组的数据框?
- vba - 根据文档名称从 iManage 检索报告或生成带有文档信息的文档列表