i am trying to add spans to specific index in innerHtml of page
when i replace the old innerHtml with the new one > all the events in the page don't work
then i realize that the innerHtml make the events don't work >>
so how i can make this operation without loosing the events in the page ?
here is my code : -
var startInd = [50]; //the index of word in innerHtml
var lastInd = [55]; //the last index of word in innerHtml(its length)(the spanned area)
var str = document.body.innerHTML;
var count = 1;
for (let j = 0; j < count; j++) // count always 1
{
let pre = str.substring(0, startInd[j]); // all html elements before the word
let post = str.substring(lastInd[j], str.length); // all html elements after the word
let phrase = str.substring(startInd[j], lastInd[j]); // the word
let nextPhrase;
if (j < count - 1)
{
nextPhrase = str.substring(startInd[j + 1], lastInd[j + 1]);
}
str = pre + `<span id="myHeader${i}">${phrase}</span>` + post; // make the new innerHtml
newID = "myHeader" + i;
if (j < count - 1)
{
startInd[j + 1] = str.indexOf(nextPhrase, startInd[j + 1]) - 1;
lastInd[j + 1] = startInd[j + 1] + nextPhrase.length;
}
document.body.innerHTML = str
}