2010-05-23 6 views
2

Une fois le contenu de la charge à la page en utilisantObtention de tous les liens de la page après chargement du contenu avec jquery load();

div.load('page.php'); 

J'ai besoin obtenir tous les liens de la page pour les modifier. J'ai donc écrit ceci:

div.load('page.php', function() { 
    links = $('a'); 
    alert(links.length); 

    for(i=0 ; i<links.length ; i++ 
    { 
     link = $('a:nth-child('+(i+1)+')'); 
     alert(link.attr('href')); 
    } 
}); 

Le résultat de ce code est: - première alerte() retourne la quantité de liens correcte, mais ce n'est pas un objet DOM, donc je ne peux pas changer l'attribut href utiliser: liens [ i] .attr ('href', 'changed') et je dois obtenir des liens en boucle un par un, mais cette méthode retourne seulement le premier lien de page.php et tous les liens du site qui ne seront pas modifiés.

Avoir quelqu'un une idée de comment le faire?

Répondre

3

Vous pouvez faire comme:

div.load('page.php', function() { 
    $('a').each(function(index){ 
     alert($(this).attr('href')); 
    }); 
}); 

Vous pouvez changer href comme:

div.load('page.php', function() { 
    $('a').each(function(index){ 
     $(this).attr('href', 'whatever'); 
    }); 
}); 
+1

Merci! Cela a résolu mon problème. – kodziek

1

Si vous devez modifier tous les liens que dans le contenu qui a été chargé, utilisez a context, comme ceci:

div.load('page.php', function(data) { 
    $('a', data).attr('href', '#'); 
}); 
//or, if they're interdependently changed, something like this... 
div.load('page.php', function(data) { 
    $('a', data).attr('href', function(i, href) { 
    return href + "?tracking=1"; //append ?tracking=1 
    }); 
}); 

Cela trouve tout <a>, mais seulement dans la réponse qui est revenue pour page.php, donc seulement les ancres que vous venez de charger. Le format est $(selector, context), si vous laissez context hors, il est document, donc quelque chose comme $('a') est vraiment $(document).find('a'), lui donnant un autre contexte que document, vous dites $(data).find('a'), obtenir que les liens que vous voulez.

Questions connexes