Javascript HTML关键字突出显示 Lorem Ipsum只是需要高亮显示的伪类高亮显示文本类。
我想突出“班级突出”和“班级”Javascript HTML关键字突出显示 Lorem Ipsum只是需要高亮显示的伪类高亮显示文本类。,javascript,html,css,Javascript,Html,Css,我想突出“班级突出”和“班级” var words=[“类突出显示”,“类”]; 变量替换=“$1”; var x=document.getElementById(“abc”).innerHtml; 对于(var i=0;i这将更好地工作: var words = ["class highlight", "class"]; var replace = '<span class="highlight-text">$1</span>'; var x = document.ge
var words=[“类突出显示”,“类”];
变量替换=“$1”;
var x=document.getElementById(“abc”).innerHtml;
对于(var i=0;i这将更好地工作:
var words = ["class highlight", "class"];
var replace = '<span class="highlight-text">$1</span>';
var x = document.getElementById("abc").innerHtml;
for(var i = 0; i<words.length; i++){
document.getElementById("abc").innerHtml.replace(pattern, replace);
}
var words=[“类突出显示”,“类”];
变量替换=“$1”;
var x=document.getElementById(“abc”).innerHtml;
对于(var i=0;ivar words=[“class”,“class highlight”];
//replace reg exp将分为3个部分
var replace='$1$2$3';
//需要较长的单词出现在较小的单词之前
sort(函数(a,b){返回b.length>a.length;});
//我们用一个或一个表达式来代替这些词
var re=new RegExp(“([$\\s])(“+words.join”([\\s^])”,“gi”);
var elem=document.getElementById(“abc”);
//抓取文本,因为HTML上的匹配不好
var txt=elem.innerText | | elem.textContent;
//制作新字符串
var replacedText=txt.replace(re,replace);
elem.innerHTML=replacedText;
类似主题:您发布的代码毫无意义。模式是什么,它与单词有什么关系。长度
?应该有一种方法可以做到这一点而不循环,从而解决问题。在jQuery中,您可以使用.text()与获取字符串的innerHTML不同,您也没有将replace
的结果分配给任何内容。我认为人们忽略了真正的问题:他试图突出显示多个单词(因此循环),但第二个单词是“class”,这导致了前面突出显示替换文本中的“class”(“这行不通。他正在解决的问题是,他第二次运行代码时,代码也会替换html标记中的内容。
var words = ["class highlight", "class"];
var replace = '<span class="highlight-text">$1</span>';
var x = document.getElementById("abc").innerHtml;
for(var i = 0; i<words.length; i++){
document.getElementById("abc").innerHtml.replace(pattern, replace);
}
var words = ["class highlight", "class"];
var replace = '<span class="highlight-text">$1</span>';
var x = document.getElementById("abc").innerHtml;
for(var i = 0; i<words.length; i++){
var rpl = replace.replace('$1', words[i]);
document.getElementById("abc").innerHtml.replace(words[i], rpl);
}
var words = [ "class", "class highlight"];
//replace reg exp will be in 3 parts
var replace = '$1<span class="highlight-text">$2</span>$3';
//need the longer words to appear before the smaller
words.sort(function(a,b){ return b.length>a.length; });
//us an OR expression to replace the words
var re = new RegExp("([$\\s])(" + words.join("|") + ")([\\s^])","gi");
var elem = document.getElementById("abc");
//grab the text since matching on HTML is bad
var txt = elem.innerText || elem.textContent;
//make the new string
var replacedText = txt.replace(re, replace);
elem.innerHTML = replacedText;