1 回答
TA贡献1836条经验 获得超13个赞
如果任务是突出显示单个单词,则可以结合使用.innerHTML和.innerText结合使用以实现所需的功能。首先,您将使用纯文本提取要突出显示的单词。然后,您在HTML版本中搜索单词的位置以找到其位置。现在,只需交换字符串的那部分。
代码:
var html2 = document.querySelector('#text2').innerHTML;
var text2 = document.querySelector('#text2').innerText;
document.querySelector('#text2').innerHTML = highlightLetters(html2, text2, 0,5);
function highlightLetters(segmentHTML, text, startPos, endPos) {
var highlightText= text.slice(startPos, endPos);
var textPosition= segmentHTML.indexOf(highlightText);
var textLength = endPos - startPos;
return segmentHTML.slice(0, textPosition) +
"<span style='background-color:pink;'>" +
segmentHTML.slice(textPosition, textPosition + textLength) + "</span>" +
segmentHTML.slice(textPosition + textLength);
}
这是显示重点的小提琴。
此版本的局限性:
如果要突出显示的字符串包含关闭或打开HTML标记,.indexOf()则将不起作用(因为在HTML中找不到该字符串)
添加回答
举报