поиск текста в div'e
доброго времени суток
Нужно искать и пдосвечивать текст в div элементе, есть такая функция: function FindNext () { var str = document.getElementById ("findField").value; if (str == "") { alert ("Please enter some text to search!"); return; } var found = false; found = window.find (str); if (!found) { alert ("The following text was not found:\n" + str); } } и разметка: <input id="findField" type="text"/> <button onclick="FindNext ();">Find!</button> ..... ..... <div id="document"> ...... </div> Как не трудно догадаться, предполагается, что текст ищется на всей странице. И меня даже это устраивало бы, но метод find находит текст только в поле ввода из <input>. Однако, если переставить местами <input> и <div> все работает корректно, но это, к сожалению, неприемлемо. В идеале, нужно чтобы текст искался только в диве. Нужна поддержка только webkit, всякие createtextrange не работают, да и не должны. |
Раз никто не знает, выкладываю свое решение, может кому пригодится. Пришлось изобрести такой костыль:
function findText() { var obj = window.document.getElementById("findField") var textToFind = obj.value if (textToFind == "") { alert("Please, input text") return } document.getElementById("document").innerHTML = document.getElementById("document").innerHTML. replace(eval("/"+textToFind+"/g"),"<span style='background-color: #ffdb58'>"+textToFind+"</span>") var obj = window.document.getElementById("findField") obj.value = textToFind } |
Часовой пояс GMT +3, время: 19:00. |