Добрый день. Стоит зада по поиску и выделеню текста, набранного в поле Input. Мой тестовый код такой:
| Код | window.onload = function() { search_DOM = document.getElementById("search_field"); container_DOM = document.getElementsByTagName("body")[0].childNodes[3]; search_DOM.onkeyup = function() { console.log(this.value) } find(container_DOM, 'на') } var range;
function find(el, text) { if (el.childNodes.length) { for (var i=0; i<el.childNodes.length; i+=1 ) { if (el.childNodes[i].nodeType===1) { find(el.childNodes[i]) } else { el.childNodes[i].data.replace(/12/gi, function(a,b,c) { var rng = document.createRange(); rng.selectNode(el.childNodes[i]) rng.setStart(el.childNodes[i], b); rng.setEnd(el.childNodes[i], b+text.length); selection = window.getSelection(); selection.addRange(rng); console.log(b) return text; }) } } } }
|
Происходит выделение первого совпадаения в строке DOM-элемента, а остальные не поулчается выделить. Верно ли, что выделение текста нельзя сделать мульти, тоесть поставить выделения в разных частях текста? |