мааленький вопрос по Regexp:)
Добрый день! снова я:), благодарю ещё раз за предыдущие ответы, и вот новый вопрос: почему когда в тэг допустим "p" вложенны другие тэги, то Regexp не ищется? суть: поисковик, в одном фрэйме ввожу слово для поиска, в другом это слово ищется и сзади подсвечивается зелёным:), всё работает, но если в тэг в ложенны другие тэги то - не работает. Читал статью с этого сайто про Regexp честно! но что-то ответа на свой вопрос не нашёл, хотя подозревая что не понимаю каких-то простых основ, кароч подскажите кто может!;)
если кому интересно такой код, ну а в хтмл, соответственно форма, фреймы, да текст, вобщем ничего интересного. function reset_slovo (){ document.forma_poiska.slovo.value = ""; } function key (event){ event = event || window.event; if(event.keyCode == 0xA || event.keyCode == 0xD){poisk();} } function poisk(){ /*for (var i=0; i<parent.detail.document.body.all.length ; i++) {alert(parent.detail.document.body.all[i].tagName + " " + i + " " + parent.detail.document.body.all[i].innerHTML);}*/ var text= parent.detail.document.body.all; var name = document.forma_poiska.slovo.value; if(name == ""){return false;} for (var i=0; i<text.length ; i++) { if (text[i].tagName.toLowerCase()== "p" || text[i].tagName.toLowerCase()== "b" || text[i].tagName.toLowerCase()== "li" || text[i].tagName.toLowerCase()== "ul" || text[i].tagName.toLowerCase()== "font" || text[i].tagName.toLowerCase()== "div" || text[i].tagName.toLowerCase()== "BR") { //alert(text[i].tagName + " " + i + " " + text[i].innerHTML); var tra = text[i].innerHTML; var as = new RegExp("(^|\\s)"+name+"(\\s|$)", "i"); var as2 = as.test(tra); if(as2) {text[i].innerHTML = text[i].innerHTML.replace(as, '$1<span class="noga">'+name+'</span>$2'); i= i -1;} } // for } //if }// function з.ы.: мой первый опыт с Regexp, так что поливайте код грязью не стесняйтесь, - буду править. |
не используй all
jquery тебе должно помочь, что-то типа $(":contains("+name+")") |
Часовой пояс GMT +3, время: 03:43. |