Показать сообщение отдельно
  #30 (permalink)  
Старый 01.09.2012, 18:59
Аспирант
Отправить личное сообщение для mooni Посмотреть профиль Найти все сообщения от mooni
 
Регистрация: 01.09.2012
Сообщений: 35

И снова проблемы =(

function FindClass(FindClas){
     
     var allTag, allElem, arrE = [], i;
     
        if(document.getElementsByClassName){
            return document.getElementsByClassName(FindClas);
        }
         
         allElem = document.body.getElementsByTagName('*');
            
           i = allElem.length;
     
    while(i--){
        if(allElem[i].className == FindClas) arrE.push(allElem[i]);
        }
    return arrE;
    }


function FindReplace (word, img) {      
 
  var elements = FindClass('font1');
  var element, html, i = 0;
  var regE = new RegExp (word,'ig');
  var leng = elements.length;
  (function closing() {
    
    element = elements[i]
    html = element.innerHTML;
    
    if( html.search(regE)== -1){
       
      end();
      return;
    }
      console.log(html.replace(regE,img))
    element.innerHTML =  html.replace(word,img); 
         
    function end () {
     if (i > leng-1) return;
      console.log(i > leng-1)
     i++;
     setTimeout(closing,0);
     }
   end();
  }());
 
    }
FindReplace('[tab]','<img src="http://i294.photobucket.com/albums/mm119/lazarncane/1.gif" >')


Вот всё бы хорошо, только одно но. Если в одном блоке div class=font1 несколько раз встречается искомый [tab], то скрипт заменяет только первый [tab], а следующие оставляет.
Ответить с цитированием