I need to replace a specific character for all elements whose class is the same with jQuery. Consider this html code:
我需要为所有类与jQuery相同的元素替换一个特定的字符。考虑一下这个html代码:
<div class="product-name">
<h1>Apple®</h1>
</div>
<div class="product-name">
<h2>iPhone®</h2>
</div>
<div class="product-name">
<h3>iPhone 5S®</h3>
</div>
I need to replace all the ® charactesr with superscript tags with this code:
我需要替换所有®charactesr与上标标签这段代码:
$('.product-name').html(
$('.product-name').html().replace(/®/gi, '<sup>®</sup>')
);
However, this code will replace the first occurrence only. For the second and beyond occurrences, it'll replace the whole product names with the first product name including the h1 tags.
然而,这段代码将只替换第一次出现。对于第二个或更多的事件,它将用包含h1标记的第一个产品名称替换整个产品名称。
How can I replace just the ® characters without changing the other characters and tags?
我怎么能取代®字符而不改变其他人物和标签?
2 个解决方案
#1
4
You can use the callback in html()
to return the value to each element in the collection
可以使用html()中的回调将值返回到集合中的每个元素
$('.product-name').html(function(_, html) {
return html.replace(/®/gi, '<sup>®</sup>')
});
小提琴
#2
1
Try $('.product-name').html().split("®").join('<sup>®</sup>');
尝试$(' .product-name '). html().split(®). join(“ <一口> < < /一口> ');
For a more complete answer,
为了得到更完整的答案,
var body = $("body").html().split('®').join('<sup>®</sup>');
$("body").html(body);
JS小提琴
#1
4
You can use the callback in html()
to return the value to each element in the collection
可以使用html()中的回调将值返回到集合中的每个元素
$('.product-name').html(function(_, html) {
return html.replace(/®/gi, '<sup>®</sup>')
});
小提琴
#2
1
Try $('.product-name').html().split("®").join('<sup>®</sup>');
尝试$(' .product-name '). html().split(®). join(“ <一口> < < /一口> ');
For a more complete answer,
为了得到更完整的答案,
var body = $("body").html().split('®').join('<sup>®</sup>');
$("body").html(body);
JS小提琴