Это нужно для поиска и выделения найденных слов. Я написал такой код:
function reset()
{
for (i=1; i<ta.length; i++)
{
ta[i].style.display = ''
}
afe = tbl.getElementsByTagName("font")
if (afe.length != 0)
{
for (i=0; i<(afe.length); i++)
if (afe[0].tmp == "yes") {afe[0].outerHTML = afe[0].innerHTML}
}
}
function find()
{
reset()
for (i=1; i<ta.length; i++)
{
txt = ta[i].innerText.toLowerCase()
findstr = fnd.value.toLowerCase()
if (txt.lastIndexOf(findstr) == -1) {ta[i].style.display = 'none'}
}
REstr = new RegExp(findstr,"gi")
tbl.innerHTML = tbl.innerHTML.replace(REstr, '<font style="background-color:white; font-size:30" tmp="yes">' + findstr + '</font>')
}
Но почему-то не работает. Текст для поиска берётся из поля формы. Имя поля - fnd. tbl - это id таблицы. Смысл такой: если в данной строке есть это слово, то оно выделяется, т.е. происходит замена слова на слово с тегами. А если нет - строка скрывается.
Функция reset сбрасывает всё. При замене я вставил параметр tmp в тег font, чтобы по нему определять, какие теги font удалять при сбросе. Сброс сначала ищет все теги font в таблице, а потом удаляет те, у которые tmp=yes.
Но код почему-то не работает. Поправьте, кто знает.