Использование replace ():
Вы можете просто использовать метод replace () , чтобы найти и удалить определенную c часть вашей строки и использовать литералы шаблона чтобы добавить ту же часть обратно, но с тегами <span>
.
const text = document.querySelector('#text');
const changeColor=(a,b)=> a.innerHTML = a.innerHTML.replace(b, `<span>${b}</span>`);
changeColor(text,"trusted online community");
span{color: red;}
<div id="text" class="text-class">Stack Overflow is the largest, most trusted online community for developers </div>
Использование replace () с регулярным выражением:
Если вы хотите заменить несколько вхождений определенной части, вы можете использовать регулярное выражение как это:
const text = document.querySelector('#text');
const changeColor=(a,b)=> {
let regexB = new RegExp(b,"g");
a.innerHTML = a.innerHTML.replace(regexB, `<span>${b}</span>`);
}
changeColor(text,"trusted online community");
span {color: red;}
<div id="text" class="text-class">Stack Overflow is the largest, most trusted online community for developers and Stack Overflow is the largest, most trusted online community for developers for a reason.</div>
Использование split () и join ():
Еще один способ сделать это - просто разбить строку на каждом экземпляр указанной строки-разделителя , которая в вашем случае равна trusted online community
с использованием метода split () , а затем снова объединяет строки друг с другом, разделенные указанной строкой-разделителем , в вашем случае это <span>trusted online community</span>
с использованием метода join () следующим образом:
const text = document.querySelector('#text');
const changeColor=(a,b)=> a.innerHTML = a.innerHTML.split(b).join(`<span>${b}</span>`);
changeColor(text,"trusted online community");
span {color: red;}
<div id="text" class="text-class">Stack Overflow is the largest, most trusted online community for developers.</div>