/ / Jak wybrać wszystkie linki wewnątrz załadowanej zawartości Ajax za pomocą jQuery? - jquery

Jak wybrać wszystkie linki wewnątrz załadowanej zawartości ajaxowej za pomocą jQuery? - jquery

Wczytuję zawartość przez Ajax, a następnie będę miećelement taki jak $ (". my_content_class") i ładuję tam dane w ten sposób $ (". my_content_class"). load (url); , ale w jaki sposób mogę dopasować wszystkie elementy wewnątrz nowej zawartości, którą załadowałem do .my_content_class? Próbowałem, ale to w ogóle nie działało.

$(".my_content_class a").each(function()
{
doSomething($(this));
});

Odpowiedzi:

1 dla odpowiedzi № 1

w rzeczywistości możesz to zrobić bezpośrednio z zawartości ajax, bez konieczności ładowania go do innego kontenera

$("a", content_returned_from_ajax).each( function() {
//dostuff
});

3 dla odpowiedzi № 2

$(".my_content_class a") to jest sposób na zrobienie tego. Prawdopodobnie używasz tej funkcji przed załadowaniem zawartości. AJAX działa asynchronicznie, więc Twój skrypt nie kończy się, dopóki zawartość nie zostanie załadowana przed przejściem do następnego wiersza kodu. Powinieneś umieścić swój kod w load wywołanie metody, które zostanie wykonane po zakończeniu żądań AJAX.

var url = "http://example.com/test.html";
var data = {var1: foo, var2: bar};
$(".my_content_class").load(url, data, function () {
// this will be executed after the content was successfully loaded
});

Z tego, co mogę przeczytać w docs, jest callbackWywoływane, gdy AJAX kończy swoją pracę i nie jestem pewien, czy to jest po tym, jak rzeczywista zawartość została załadowana do drzewa DOM.Trzeba to ustalić na własną rękę, a jeśli jest to zrobione wcześniej, musisz utworzyć małe opóźnienie w funkcji wywołania zwrotnego do uruchomienia po aktualizacji DOM. setTimeout może się przydać, ale najpierw upewnię się, że potrzebujesz tej części.


3 dla odpowiedzi nr 3

Możesz użyć parametru callback dla obciążenie funkcja dokładnie wiedzieć, kiedy ładowanie się kończy, a następnie możesz wybrać swoje elementy:

$(".my_content_class").load(url, function () {
var anchors = $("a", this); // all loaded anchor elements
});

0 dla odpowiedzi nr 4

Musisz użyć relacja na żywo() funkcja jQuery do tego. Został dodany w jQuery 1.3.