$(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/