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

我正在通过我的 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>"

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


杨__羊羊
浏览 137回答 2
2回答

临摹微笑

您可以尝试通过创建一个函数来去除标签:function strip_html_tags(str) {&nbsp; if ((str === null) || (str === '')) {&nbsp; &nbsp; return '';&nbsp; }&nbsp; return str.toString().replace(/<[^>]*>/g, '');}i = strip_html_tags(htmlText).indexOf(lcSearchTerm, i+1);

呼唤远方

假设您要突出显示具有 id 的元素中的单词containerconst el = document.getElementById('container');el.innerHTML = el.innerHTML.replace(/searchterm/g,(w) => `<font>${w}</font>`)
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript