使用javascript为单词添加样式
adding styles a word using javascript
我试图使用JavaScript替换Word,但当脚本运行时,也会替换JavaScript中的Word。这个想法是当脚本在文档上找到Word时,添加一些样式的Word,然后我使用REPLACE来执行此操作,查看代码
document.body.innerHTML = document.body.innerHTML.replace('Amaru', '<span style=font-family:"Inder"!important;color:#0c5d4e;text-transform:lowercase;>amaru</span>');
非常感谢你。
实现这一点的最佳方法可能是将要运行替换的内容包装在父div中。这样,您就不必担心替换会影响除内容div中的内容之外的任何内容。
此外,如果您想替换的不仅仅是第一个匹配项,则必须使用regex文本(/Amari/gi),如下面的代码段所示。i忽略情况。
<div id="replace-content">
Amari
</div>
<script>
var amari = 'Amari';
var replaceContent = document.getElementById('replace-content');
var html = replaceContent.innerHTML.replace(/Amari/gi, '<span style="color:red">Amari</span>');
replaceContent.innerHTML = html;
console.log(amari);
</script>
编辑
如果您不能像Rob在评论中指出的那样修改标记,那么您可以选择从DOM查询中省略脚本标记。
<div>
Amari
</div>
<script>
var amari = 'Amari';
var elements = document.querySelectorAll('*:not(script)');
for (var i = 0; i < elements.length; i++) {
var html = elements[i].innerHTML.replace(/Amari/gi, '<span style="color:red">Amari</span>');
elements[i].innerHTML = html;
}
console.log(amari);
</script>
您也有语法错误。因为你没有把你的风格写在报价里。
不过,最好使用Regex。
document.body.innerHTML = document.body.innerHTML.replace(/Amaru/g, '<span style=''font-family:"Inder"!important;color:#0c5d4e;text-transform:lowercase;''>amaru</span>');
Amaru 1
<br>
Amaru 2
您将需要使用正则表达式,因为您不希望替换与脚本标记中的字符串相匹配,这会使它稍微复杂一些。
然而,您可以使用一种名为环视的正则表达式技术来实现这一点
像这样的正则表达式应该可以做到这一点:
(?!<script[^>]*?>)('bAmaru'b)(?![^<]*?<'/script>)
这里有你的代码:
var regex = /(?!<script[^>]*?>)('bAmaru'b)(?![^<]*?<'/script>)/;
document.body.innerHTML = document.body.innerHTML.replace(regex, '<span style=font-family:"Inder"!important;color:#0c5d4e;text-transform:lowercase;>amaru</span>');
TBH我真的不建议在原始HTML上使用regex
相关文章:
- 如果window.location.href.indexOf('player=1')添加样式
- 如果选中复选框,则添加样式
- 尝试在随机文本和图像脚本中添加样式/更改字体
- 使用javascript为单词添加样式
- IMG悬停添加样式
- 如何在jquery locationpicker插件中为地图添加样式
- Jquery 在 ASP 文本框上添加样式不起作用
- 如何使用JavaScript/jQuery有条件地添加样式表
- 希望在提醒框中添加样式
- struts2 文本区域 仅为一个单词添加样式
- 使用Javascript为样式切换器添加样式表的最佳方法
- 从用户输入向元素添加样式
- Stylus:为在 JavaScript 中生成的 ID 添加样式
- 在 ajax 函数中向 DIV 添加样式更改
- 在更改时使用javascript函数时向html.dropdownlist添加样式
- .html() 在查询中使用 html() 添加样式
- 动态地向 HTML 表添加样式 - 使用 DOM、JS
- 我可以在 innerHTML 中添加样式标签吗?
- angular ng在条件下重复添加样式
- 制作一个Firefox插件来注入一些DIV并添加样式.那'是的