我已经找到了如何在div中查找正则表达式,甚至知道如何使用它添加类,但我无法找到一个可以循环处理的示例。我尝试过indexOf(),但无法让它为我工作。我不确定那是否是我需要的东西。我想做的是将我的标签#variant_label中两个方括号[]之间的文本变成红色。我可以做到这一点,但它只适用于第一个标签-它不适用于第二个。
以下是我的HTML:
这是 CSS 代码:
以下是我的HTML:
<input type="radio" name="id" value="value" id="radio_variant-id" checked="checked" />
<label for="radio_variant-id" id="variant_label">5 Packs of 4 (20 Count) [Save 10%]</label>
<p class="variant_price">PRICE <span>SKU</span></p>
<input type="radio" name="id" value="value" id="radio_variant-id" checked="checked" />
<label for="radio_variant-id" id="variant_label">10 Packs of 4 (40 Count) [Save 15%]</label>
<p class="variant_price">PRICE <span>SKU</span></p>
这是 CSS 代码:
.highlight {color: #F00}
这是带有我的正则表达式的JavaScript代码,可以使"[Save 10%]"变成红色,但无法作用于"[Save 15%]":
var o = document.getElementById("variant_label");
o.innerHTML = o.innerHTML.replace(/(?:^|[^!])(\[[^[\]]*])/g, '<span class="highlight">$&</span>');
这是我所拥有的内容的演示:https://jsfiddle.net/dr4vp2sq/1/
我找到了这个可以实现我想做的事情的演示,但我需要缩小到仅在我的#variant_label
中的文本,我很难弄清楚如何实现。 http://jsfiddle.net/cz6owdxx/4/
forEach
方法。如果你没问题的话,可以继续使用,否则请使用for
循环(就像Rion的示例中那样)。祝编码愉快! - Roko C. Buljanfor
循环。 - amandathewebdev