Можете поможете еще разок?
Данный пример с заменой тега текстом мне нужен был для написания программы поиска и выделения совпадений в тексте, то есть имеется поле ввода, и все что в него введено будет выделяться на странице красным цветом.
Вот код всей страницы
<!DOCTYPE html>
<html>
<head>
<title>Поисковик</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<style>
.wrapper{
margin:10px auto;
width:880px;
border:solid 1px #999999;
background:#FFF;
padding:35px 7px;
position:relative;
}
.wrapper input[type="text"]{
text-align:center;
position:absolute;
width:95%;
margin:0px auto;
left:5px;
top:5px;
right:5px;
padding:5px 10px;
border:solid 1px #CCCCCC;
outline:0px;
background:#FC6;
transition:all .3s;
}
.wrapper input[type="text"]:focus{box-shadow:inset 0px 0px 3px #000000;}
.edit{color:red;}
</style>
<script type="text/javascript">
var span,container;
window.onload = function(){
span = document.querySelectorAll('.edit');
container = document.getElementsByClassName("page")[0];
document.getElementById("myTest").addEventListener("keyup",testRxp);
}
function testRxp(e){
var myTextSearch = this.value;
for (var i=0; i<span.length; i++){
txt = document.createTextNode(span[i].textContent);
if(txt=="") continue;
container.replaceChild(txt, span[i]);
}//удаляем все теги
if(/^\s$|^$/.test(myTextSearch)) return; // если строка пустая или начинается с пробела прервать функцию
var regexp = new RegExp(myTextSearch,"g");
container.innerHTML = container.textContent.replace(regexp,"<span class='edit'>"+myTextSearch+"</span>");
//заново выделяем все найденные совпадения
span = document.querySelectorAll('.edit');
for(var i=0; i<span.length; i++){
if(span[i].textContent=="") span[i].parentNode.removeChild(span[i]);
}//удаляем все оставшиеся пустые теги
}
function isUpper(str){
if (str == str.toUpperCase()) return true;
else return false;
}
</script>
</head>
<body>
<div class="wrapper">
<input type="text" id="myTest" placeholder="Поиск совпадений">
<div class="page">
Россия (от греч. Ρωσία — Русь; официально Росси́йская Федера́ция или Росси́я, на практике используется также сокращение РФ) — государство в Восточной Европе и Северной Азии. Население — 146 270 033 чел. (2015), территория — 17 125 187 км². Занимает первое место в мире по территории и девятое место по численности населения.
Столица — Москва. Государственный язык — русский.<br>
Смешанная республика федеративного устройства. В мае 2012 года пост президента занял Владимир Путин, председателя правительства — Дмитрий Медведев.<br>
В составе Российской Федерации находятся 85 субъектов, 46 из которых именуются областями, 22 — республиками, 9 — краями, 3 — городами федерального значения, 4 — автономными округами и 1 — автономной областью.<br>
Россия граничит с девятнадцатью странами (самый большой показатель в мире), включая две частично признанных, из них по суше со следующими государствами: Норвегией, Финляндией, Эстонией, Латвией, Литвой, Польшей, Белоруссией, Украиной, Абхазией, Грузией, Южной Осетией, Азербайджаном, Казахстаном, КНР, КНДР, Монголией, по морю с Турцией, Японией и США.<br>
Отличается значительным этнокультурным разнообразием. Бо́льшая часть (около 75 %) населения относит себя к православию, что делает Россию страной с самым многочисленным православным населением в мире.<br>
По данным Всемирного банка, объём ВВП по ППС за 2014 год составил $3,461 трлн ($24,120 на человека). Денежная единица — российский рубль (усреднённый курс за 2014 год — 36 рублей за 1 доллар США).
</div>
</div>
</body>
</html>
Когда ввожу текст в первый раз все работает, далее стираю текст и ввожу новый - ошибка