我想把一段文本(text)里面的某一段关键字标红,需要标红的字符串都存在一个列表里(dogs),效果类似于百度搜索:
标红示例
目前的想法是,遍历列表,然后用indexOf方法找到需要标红的子串位置,然后用拼接的方法,为它加上一个em的标签,然后修改一下em的CSS样式,以完成标红。下面是我的代码
let text = keypoint_data[i][0];
let dogs = keypoint_data[i][2];
//处理标红
for (let i = 0;i < dogs.length; i++){
if(text.indexOf(dogs[i]) > -1){
let start = text.indexOf(dogs[i]);
let end = start + dogs[i].length;
let em = text.substring(start, end);
let from_start_to_em = text.substring(0, start);
let from_em_to_end = text.substring(end);
text = from_start_to_em + "<em>" + em + "</em>" + from_em_to_end;
}
}
结果效果是这样子的。...并没有起效。求问大家这个应该怎么处理
其实答案特别简单...我原来用的是content.text(text)方法,只需要把content.text()改成content.html( ) 就可以了