我有这个HTML标题:
<h1>Time Matters®</h1> (equals to: Time Matters®)
我需要一种通过CSS或jQuery控制'&amp; reg; '标记的方法。据我所知,我认为用CSS定位“&amp; reg; ”是不可能的,是吗?
现在,如果使用jQuery,我需要在&lt;中包含'&amp; reg; '。 sup>标签,像这样:
<h1>Time Matters<sup>®</sup></h1>
...这样我可以通过CSS定位元素。
我尝试调整this tutorial,但代码封装了&lt; { span&gt;标签
知道怎么做到这一点?任何帮助将不胜感激。
感谢。
答案 0 :(得分:8)
正常的Javascript String .replace()
应该这样做:
$(function() {
$('h1').each(function(i, elem) {
$(elem).html(function(i, html) {
return html.replace(/(®)/, "<sup>$1</sup>");
});
});
});
示例:http://www.jsfiddle.net/4yUqL/24/
// off-topic
我刚刚意识到这一点,哇这看起来非常令人印象深刻
(®)(®)
答案 1 :(得分:1)
有一个Javascript函数用于执行此操作,称为replace()。 More info here
我建议将元素的内容分配给变量,使用replace函数替换<sup>
封闭符号的符号,然后使用DOM将其附加到文档
答案 2 :(得分:0)
这里是一个Javascript解决方案:
var replaceHTMLCharacterEntities = function (expression, tag, superscript) {
var regex = new RegExp(expression, 'g'),
iTag = tag.toUpperCase(),
iSuperscript = expression[superscript](),
tags = document.getElementsByTagName(iTag),
i = 0,
tagsLength = tags.length,
html = "";
for (i; i < tagsLength; i++) {
html = tags[i].innerHTML.replace(regex, iSuperscript);
tags[i].innerHTML = html;
}
};
replaceHTMLCharacterEntities("\u00a9", "h1", "sup");
replaceHTMLCharacterEntities("\u00AE", "p", "sub");
replaceHTMLCharacterEntities("\u24C8", "p", "sub");