Функция String.prototype.replace
заменит содержимое строки, но не изменит оригинал.
Вы можете сделать:
e.target.innerHTML = e.target.innerHTML.replace('SHOW','red')
Или вы можете создать полифилл для пользовательского функция на объекте HTMLElement
.
/* A polyfill for a custom HTML text replacer function */
if (HTMLElement.prototype.replaceHTML === undefined) {
HTMLElement.prototype.replaceHTML = function(regexpOrSubstr, newSubstrOrFunc) {
this.innerHTML = this.innerHTML.replace.apply(this.innerHTML, arguments)
}
}
const tour = document.querySelector('.tour__heading')
const addSection = e => {
//e.target.innerHTML = e.target.innerHTML.replace('SHOW','red')
e.target.replaceHTML('SHOW','red')
}
tour.addEventListener('click', addSection)
.tour__heading:hover {
cursor: pointer;
}
<div class="tour__heading">SHOW</div>