2010-12-17 28 views
0

Ich habe einige Probleme mit dem Finden und Ersetzen von Wörtern in PHP-Dateien, vor allem, wenn es Tonnen von ihnen gibt. Also dachte ich, dass ich versuchen werde, Javascript/jQuery zu verwenden. Ich möchte Tabelle Hexe word_to_replace @ new_word erstellen, um dies zu tun. Dies ist mein Code, der nicht funktioniert (und sehr lange läuft), Filter scheint nicht zu funktionieren, irgendwelche Ratschläge?Suchen und Ersetzen von Text, Word-Übersetzung

Antwort

1

Sie erhalten die text() jedes Seitenelements (das den Text der untergeordneten Elemente enthalten wird) und ersetzen es darin. Das heißt, wenn Sie den ‚Körper‘ Element erhalten Sie den ganzen Text ersetzen, und dann erhalten Sie alle Elemente innerhalb des Körpers, und ersetzen Sie den gesamten Text, usw.

So etwas besser funktionieren kann:

(function($){ 
    var arr = [ 'photo-board.pl przyjazny portal [email protected] ','Upload images from [email protected] zdjęć z ', 
    'Total number of [email protected] Całkowita liczba zdjęć']; 
    var bodyText = $('body').html(); 
    $.each(arr, function(i, v) { 
    var words = v.split('@'); 
    var fromTxt = words[0], toTxt = words[1]; 
    bodyText = bodyText.replace(fromTxt, toTxt); 
    }); 
    $('body').html(bodyText); 
})(jQuery); 

Demo here.

Es ist jedoch erwähnenswert, dass Sie Ereignishandler und Daten unter Verwendung .data(...) verlieren, da dies den gesamten Körper Inhalt zerstört und neu erstellt.

0

Eines der Leistungsprobleme Ihres Skripts ist der sofortige Aufruf von .html bei jeder Iteration des Filters. Dies veranlasst den Browser, das Element bei jeder Iteration neu zu zeichnen.

Sie könnten in Betracht ziehen, die HTML-Datei von der Dom gelöst und dann, nach den for und die filter Schleifen, Ersetzen der HTML in der Dom.

Verwandte Themen