为了账号安全,请及时绑定邮箱和手机立即绑定

对文本进行一些更改后将 innerText 转换为 innerHTML

对文本进行一些更改后将 innerText 转换为 innerHTML

杨__羊羊 2023-01-06 15:38:59

我正在通过我的 innerHTML 找到某个字符串的索引,以便我可以向它添加样式标签并突出显示它 - 为此,我使用类似的东西:


i = htmlText.indexOf(lcSearchTerm, i+1);

问题是,如果我的 lcSearchTerm 是:


"Find word"

但如果在 innerHTML 中,它是这样的:


"<span> Find </span> word"

我找不到字符串的索引,因为它找不到我们正在寻找的字符串)。


所以我的想法是在里面的innerText中找到它并在那里突出显示它。问题是之后,我需要将其转换回 innerHTML 以使用更改更新页面。我应该是这样的:


innerText = "Find word"

innerText = Stylize(innerText)

innerText = "<font style='color:blue; background-color:yellow;'> Find word </font>"


innerHTML = TextToHTML(innerText);

innerHTML = "<body> 

                 <div> 

                     <font style='color:blue; background-color:yellow;'> Find word </font> 

                 </div> 

             </body>"

关于如何做到这一点的任何想法?


查看完整描述

2 回答

?
临摹微笑

TA贡献1739条经验 获得超2个赞

您可以尝试通过创建一个函数来去除标签:


function strip_html_tags(str) {

  if ((str === null) || (str === '')) {

    return '';

  }


  return str.toString().replace(/<[^>]*>/g, '');

}


i = strip_html_tags(htmlText).indexOf(lcSearchTerm, i+1);


查看完整回答
反对 回复 2023-01-06
?
呼唤远方

TA贡献1594条经验 获得超11个赞

假设您要突出显示具有 id 的元素中的单词container


const el = document.getElementById('container');

el.innerHTML = el.innerHTML.replace(/searchterm/g,(w) => `<font>${w}</font>`)


查看完整回答
反对 回复 2023-01-06
  • 2 回答
  • 0 关注
  • 14 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信