Thomas Daniels
Вы используете createTextNode
что создает просто текст узел, нет HTML-элемента.
Похоже, вы хотите заменить старый HTML-код элемента новым HTML-кодом, содержащим цветные слова. Я не вижу, как вы получаете доступ к элементам из вашего JavaScript, но то, что вы можете сделать, в основном это:
var element = ...; // if you want to get the element by ID: document.getElementById("your-element");
var originalHtml = element.innerHTML;
var newHtml = originalHtml.replace(_word, _word.fontcolor("red"));
element.innerHTML = newHtml;
Обратите внимание, что .replace заменяет только первое вхождение слова. Если вы хотите заменить все вхождения, вы можете использовать регулярное выражение:
var newHtml = originalHtml.replace(new RegExp(_word, "g"), _word.fontcolor("red")); // "g" means "global"
Также обратите внимание, что установка
innerHTML
свойство приводит к тому, что элемент теряет все обработчики событий. Поэтому, если у вас есть обработчики событий, привязанные к вашим"li" -элементам, то я рекомендую не помещать ваш текст сразу в li-тег, а в другой тег в теге li, например:
<li><span>your text here</span></li>
.
Ali Majed HA
Большое спасибо, ваше решение решило мою проблему, но не могли бы вы рассказать мне больше о вашей первой линии решения ? Вы имеете в виду, что использование createTextNode предотвращает визуализацию моего текста ?
заранее спасибо