【发布时间】:2021-09-19 15:19:48
【问题描述】:
我正在尝试在页面上查找特定的产品名称,如果匹配,那么我想在该名称的末尾添加“- 10% 折扣”。
我遇到的问题是我在括号“(1+1)”中的产品名称末尾如何将其包含在变量findCopy 中,所以我的结果将是:“产品名称(1+1 ) - 10% 折扣"
var findCopy = 'Product Name';
// The below is what I'm trying to achieve to get
// var findCopy = 'Product Name (1+1)';
var targetThis = document.querySelector('.copy');
targetThis.innerText = targetThis.textContent.replace(new RegExp(findCopy), findCopy + ' - 10% Discount');
<p class="copy">Product Name (1+1)</p>
【问题讨论】:
-
为什么要使用正则表达式?你可以only use CSS
-
因为我在页面上寻找一个特定的产品名称,并且所有名称都具有相同的类,所以我只想在这个产品之后添加10%的折扣副本。
-
为什么要用replace?
targetThis.innerText = targetThis.textContent + ' - 10% Discount';不适合你? -
问题是你在这里使用字符串替换并且只用“ - 10%折扣”替换字符串的第一部分,为什么不只用一个if语句来查找产品名称和如果匹配,则将 10% 附加到末尾?
-
不要认为我的措辞正确。我想基本上找到这个字符串中的内容" : var findCopy = 'Product Name (1+1)'; " 但是在其中添加括号不起作用。那么有没有办法逃避它们或将它们包含在搜索此产品名称中