2013-05-22 12 views
2

이것은 첫 번째 코드JQuery * (모든 요소) 일부 클래스가있는 범위 태그를 제외한 선택 자입니다. 이 작품을 어떻게 만들 수 있습니까?

var operations = 0; 
$('body').bind('DOMCharacterDataModified, DOMNodeInserted, DOMSubtreeModified', 'test', function() { 
    if (operations < 1) { 
     tba_highlight_numbers(); 
    } 
    operations++; 
}); 

이며, 여기에 "tba_highlight_numbers"기능의 최신 코드입니다.

function tba_highlight_numbers() { 

//Highlighting the number on webpage. 
$("body *:not(span.tba_phone)").replaceText(/\d*[/\(-]*[0-9][0-9][0-9][/ \)\(-]*[0-9][0-9][0-9][/ \)\(-]*[0-9][0-9][0-9][0-9][/ \) ]*/g, function(ss) { 
    return '<span class="tba_phone" title="Make a Call to (' + $.trim(ss) + ') via ACT Browser Applet" style="color:green" rel="' + $.trim(ss) + '">' + ss + '</span>'; 
}); 

} 

이 js 코드는 웹 페이지에서 전화 번호를 강조 표시하는 작업을 수행합니다. 하지만 첫 번째 부분에서 볼 수 있듯이이 함수는 아약스 요청 및 기타 메소드를 통해 웹 페이지에서 데이터가 동적으로 수정되는 많은 시간에 호출됩니다.

내 목표는 이전에 강조 표시된 작업을 수행하지 않는 것입니다.

누군가가이 문제를 해결할 수 있습니까?

+2

의 기능이 강조 후속 호출에서 그 제외 된 모든에 클래스를 추가하는 의미가있다. – Orangepill

+0

예, 강조 표시된 텍스트를 다시 강조 표시하고 싶지 않습니다. – Krishna

+0

이것은'$ ('body *'). not ('span.someClass')'하지만'span.someClass' 모든 것을 선택합니다. –

답변

1

변경

function tba_highlight_numbers() { 

    //Highlighting the number on webpage. 
    $("body *:not(span.tba_phone)").filter(function(){ return $(this).hasClass(".already-hightlighted");}).replaceText(/\d*[/\(-]*[0-9][0-9][0-9][/ \)\(-]*[0-9][0-9][0-9][/ \)\(-]*[0-9][0-9][0-9][0-9][/ \) ]*/g, function(ss) { 
     return '<span class="tba_phone" title="Make a Call to (' + $.trim(ss) + ') via ACT Browser Applet" style="color:green" rel="' + $.trim(ss) + '">' + ss + '</span>' + ss; 
    }); 
    $("body *:not(span.tba_phone)").addClass('already-highlighted'); 


} 
+0

코드에 구문 오류가 있습니다. 제 편집자가 보여주고 있습니다. 또한 BTW를 작동하지 않습니다. – Krishna

+0

fixed ... replaceText가 별도의 플러그인에 있다고 가정합니다. – Orangepill

+0

글쎄, 코드가 제대로 작동하지 않았지만 내 목표를 달성하기위한 힌트를 주었다. 아주 고맙습니다. – Krishna