这个问题说明了一切。例如我有以下 HTML 代码:
<span id="span">Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor<span>
如何更改上面任何单词的颜色而不修改span
上面(我知道我可以再放一个span
带有一个标签id="text"
并使用document.getElementById("text").style.color="red";
。但我不想这样做,而是想搜索标签中的单词(也许使用正则表达式)并动态更改它的颜色。
如果不修改跨度的内容就无法做到这一点。因此,您要么在源代码中执行此操作,要么稍后通过操作 DOM 执行此操作(在您的情况下,通过 jQuery)。
例如:
var span = $("#span");
span.html(span.html().replace(/dolor/, '<span style="color: red">$&</span>'));
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<span id="span">Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor</span>
The $&
替换字符串中是找到的单词。在上面的例子中,只有第一个出现的地方会被替换;要替换多次出现的情况,请添加g
到正则表达式的末尾 (/dolor/g
).
请注意,如果您有任何事件处理程序附加到span
,它们将因此被删除,因为跨度的内容被删除然后被替换。 (因为您的示例中根本没有任何元素span
,我认为情况并非如此,但我认为我应该提及这一点。)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)