使用javascript更改部分文本的背景色?

发布于 2024-08-06 08:13:56 字数 405 浏览 6 评论 0原文

我有一些带有 html 标签的文本部分,例如

<b>something</b>

我选择了文本的某些部分,例如“一些”。

与 getSelection().getRangeAt(0);我得到插入符(文本光标)的位置,所以我知道我选择了文本的哪一部分。

我有 startOffset 和 endOffset。但问题是,startOffset和endOffset忽略html标签,所以它返回的数字还不错,然后我不知道我必须在文本的哪一部分应用

<span style="background-color: somecolor ">some</span>

任何ide如何解决这个问题?谢谢

i have some part of text with html tags , for example

<b>something</b>

i select some part of text for example "some".

with getSelection().getRangeAt(0); i get position of caret (textcursor), so i know which part of text i've selected.

i have startOffset and endOffset. but problem is, that startOffset and endOffset ignores html tags, so numbers which it returns are not bad, and then i don't know on which part of text i have to apply

<span style="background-color: somecolor ">some</span>

any ides how to solve this ? thanks

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

笑忘罢 2024-08-13 08:13:56
<b id='str1'>something</b>
<script>
function jsReplace()
{
  var elem = document.getElementById('str1')
  elem .innerHTML = elem .innerHTML.replace('some', '<span style="background-color: somecolor ">some</span>')

}
</script>
<b id='str1'>something</b>
<script>
function jsReplace()
{
  var elem = document.getElementById('str1')
  elem .innerHTML = elem .innerHTML.replace('some', '<span style="background-color: somecolor ">some</span>')

}
</script>
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文