jQuery pour changer tous les liens dans la page

$(function(){ $('a').each(function(){ var x=this.href; this.href="www.somesitename.com/filter"+this.href; }); }); 

J’ai écrit le script jQuery ci-dessus pour append un nom de site à tous les liens de la page, mais cela ne fonctionne pas comme prévu.

Je me demande pourquoi vous utiliseriez jQuery pour un comportement aussi basique …

c’est pourquoi la balise BASE est là pour

Spécifiez une URL par défaut et une cible par défaut pour tous les liens d’une page:

       W3Schools  

ne compliquez pas ce qui est simple!


ajoutée

de Sitepoint

L’élément de base ne vous sera utile que si tous vos liens relatifs ou soumissions de formulaires vont au même endroit.

Vous devez probablement append http:// :

 $(function(){ $('a').each(function() { $(this).attr('href', 'http://www.somesitename.com/filter' + this.href); }); }); 

Nouvelle amélioration de la solution de Darin:

 $(function(){ $('a').attr('href', (n, old) => 'http://www.somesitename.com/filter' + old); }); 

Une chose à noter qu’en cas de .each this.href génère une URL complète absolue (par exemple: http: // localhost: 8888 / mylink ), le résultat peut ressembler à: http://www.somesitename.com/filter/ http: // localhost: 8888 / mois . La solution consistait à obtenir la valeur de l’atsortingbut via jQuery: $ (this) .attr (‘href’), ce qui donne correctement / mylink .

Définissez une balise de base dans votre tête, puis mettez à jour sa propriété href si nécessaire.

  $("base").attr("href","http://www.some-other-domain.com/"); 

Voici ce que j’ai l’habitude de faire

J’ai supprimé chaque ‘blog /’ de href sur la page de la même façon, vous pouvez changer de lien ou le mettre à jour

$('a').each(function(){ var updated_link = $(this).attr('href').replace('blog/', ''); $(this).attr('href', updated_link); });

J’ai utilisé la fonction replace pour mettre à jour une partie de url.in votre cas, vous pouvez le mettre à jour

Vous devrez probablement utiliser la fonction append () jQuery a http://api.jquery.com/append/