1
votes

Comment remplacer un lien href d'un site Web spécifique en utilisant Javascript?

J'ai beaucoup de liens du même site Web mais avec des dirreciones différentes

var a = document.querySelector('a[href="somelink.com"]');
if (a) {
  a.setAttribute('href', 'replacedlink.com')
}
<a href="somelink.com" title="this link">
</a>

Il a essayé d'utiliser le code mais cela ne fonctionne pas pour moi car il recherche une URL spécifique et pas toutes

<a href="somelink.com/1" title="this link">
</a>
<a href="somelink.com/2" title="this link">
</a>
<a href="somelink.com/3" title="this link">
</a>
<a href="somelink.com/3" title="this link">
</a>

Comment pourrais-je le faire de manière massive et le faire à toutes les URL d'un site Web en estecifico par exemple: somelink.com


0 commentaires

3 Réponses :


0
votes
 Try adding class to the links and then use get element by class and replace the link
       <a href="www.google.com" class="abc">my url</a>
        var i=document.getElementByClass("abc");
          for(let j=0;j<i.length;j++){
           i[j].href='newUrl';
            }

2 commentaires

dans mon cas, l'url n'a pas de classe, elles sont stockées dans une base de données


alors vous pouvez concaténer l'url en cliquant comme si vous avez l'url de base www.facebook.com et que vous voulez aller à la page de configuration, vous pouvez ajouter la valeur en cliquant pour que l'URL devienne www.facebook.com/settings



0
votes

Pour plusieurs éléments, nous pouvons les remplacer de cette manière:

var a = document.querySelectorAll('.your_attr_class').forEach( (item)=>{ 

      if(item.href.startsWith('http://somelink.com')){
        item.href.replace('http://somelink.com','http://replacewith.com');
      }

});


2 commentaires

Je ne travaille pas, mon ami, car les URL ont des paramètres


Vous pouvez vérifier le href avec la méthode startsWith, puis le remplacer comme vous le souhaitez.



1
votes

Vous pouvez utiliser un sélecteur d'attribut ^ = pour vérifier si le href commence par somelink.com . Ensuite, vous pouvez remplacer l'url:

<a href="somelink.com/1" title="this link">a
</a>
<a href="somelink.com/2" title="this link">b
</a>
<a href="somelink.com/3" title="this link">c
</a>
<a href="somelink.com/3" title="this link">d
</a>
<a href="otherlink.com/3" title="this link">e
</a>
document.querySelectorAll('a[href^="somelink.com"]').forEach(
  x => x.href = "replacedlink.com"
)

Si vous souhaitez remplacer tout le lien, vous pouvez définir l'attribut href sur le nouveau lien:

<a href="somelink.com/1" title="this link">a
</a>
<a href="somelink.com/2" title="this link">b
</a>
<a href="somelink.com/3" title="this link">c
</a>
<a href="somelink.com/3" title="this link">d
</a>
<a href="otherlink.com/3" title="this link">e
</a>
document.querySelectorAll('a[href^="somelink.com"]').forEach(
  x => x.href = x.href.replace("somelink.com", "replacedlink.com")
);


2 commentaires

merci, mais comment remplaceriez-vous toute l'url osea somelink.com/1 -> replacelink.com, en supprimant le paramètre / 1


@juan Dans ce cas, vous pouvez définir l'attribut href sur le nouveau lien. J'ai mis à jour ma réponse avec un exemple.