Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   мааленький вопрос по Regexp:) (https://javascript.ru/forum/misc/2611-maalenkijj-vopros-po-regexp.html)

mirniy 22.01.2009 17:34

мааленький вопрос по 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, так что поливайте код грязью не стесняйтесь, - буду править.

x-yuri 22.01.2009 19:47

не используй all
jquery тебе должно помочь, что-то типа
$(":contains("+name+")")


Часовой пояс GMT +3, время: 15:05.