2010-02-27 13 views
15

Otrzymałem niesamowitą pomoc od innych, dotyczącą wyszukiwania i zamiany tekstu na jquery.jQuery - Znajdź i zamień tekst po załadowaniu ciała

Poniższy kod znajdzie słowo: „Temat:” i zastąpienie go „Nazwa:”

$("*").each(function() { 
    if ($(this).children().length == 0) { 
     $(this).text($(this).text().replace('Subject:','Name:')); 
    } 
}); 

I to działa cudownie.

Jedyne, na co napotykam, to zastępowanie tekstu ładowanego po załadowaniu strony.

Mam niektóre funkcje javascript, które wyświetlają dane z serwera, ale tylko po załadowaniu wszystkich elementów strony. Na przykład użytkownik wybiera wartość z menu rozwijanego, które inicjuje zdarzenie, aby załadować listę produktów z bazy danych.

formatować niektóre z tych produktów tak:

Granny Smith Cena: X.XX za funt Nutritional faktów ....

Ja tylko chce znaleźć zastąpić słowo " Cena: "i ewentualnie zastąp go" Koszt: ".

Ale jak już wspomniałem, dane nie zostały jeszcze załadowane. I wyświetla się tylko wtedy, gdy użytkownik wybierze "Jabłka Granny Smith" z menu rozwijanego.

Czy to jest limit, z którym muszę żyć?

Odpowiedz

13

Można spróbować dołączenie zdarzenie do ajaxStop event jak również obciążenia:

function replaceText() { 
    var jthis = $(this); 
    $("*").each(function() { 
     if(jthis.children().length==0) { 
      jthis.text(jthis.text().replace('Subject:', 'Name:')); 
     } 
    }); 
} 
$(document).ready(replaceText); 
$("html").ajaxStop(replaceText); 
+0

To działa! Dobry pomysł, a jednak taki prosty. Dziękujemy! – coffeemonitor

+2

Po co tworzyć tyle obiektów jQ .... cache $ (this) refs zamiast – redsquare

+0

Gdzie mogę dodać ten fragment? functions.php, mój plik motywu? Przepraszam za pytanie noobie. – Pete

1

Zadzwoń swoją funkcję z $(document).ready() zwrotnego jak ten

$(document).ready(function() { replace_stuff(); }); 
+0

Już to robię i nadal nie ma wpływu na dane załadowane po załadowaniu strony. – coffeemonitor

0

Poniższa funkcja działa idealnie dla mnie: To jest przykład użycia:

Powiązane problemy