Permutation

Résolu/Fermé
HGharbi Messages postés 12 Date d'inscription vendredi 26 février 2016 Statut Membre Dernière intervention 27 octobre 2017 - 23 mai 2016 à 20:54
jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 - 23 mai 2016 à 22:52
une fonction virus() qui va procéder à une permutation circulaire des liens contenus
sur la page en cours
j'ai essai mais ne marche pas !!!!
code
<html>
<body>
<script type="=text/javascript">
function virus(){

var liens=document.getElementsByTagName("a");

var prem=liens[0].href;

for(var i=0;i<liens.length-1;i++)
liens[i].href=liens[i+1].href;

liens[liens.length-1].href = prem;
}
function doVirus(){

virus();

setTimeout("doVirus()",20000);
}
</script>
</head>

<body>
<a href="#">google</a><br>
<a href="#">facebook</a><br>
<a href="#">youtube</a><br>
<a href="#">gmail</a>

</body>
</html>

1 réponse

jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 4 650
23 mai 2016 à 21:05
Bonjour,

1 - A l'avenir.. merci d'utiliser les balises de code....
**** Attention ****
Merci de bien vouloir utiliser la coloration syntaxique (les balises de code) lorsque tu postes du code sur le forum.
Explications disponibles ici :
https://codes-sources.commentcamarche.net/faq/10686-le-nouveau-codes-sources-comment-ca-marche#balises-code

.

2 - Voila ton code corrigé :

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
 <title>TEST</title>
</head>
<body>
<a href="www.google.fr">google</a><br>
<a href="www.facebook.com">facebook</a><br>
<a href="#">youtube</a><br>
<a href="www.gmail.com">gmail</a>

</body>
</html>
<script type="text/javascript">
function virus(){
  var liens=document.getElementsByTagName("a");
  var prem=liens[0].href;
  var nb = liens.length;
  console.log(nb);
  for(var i=0;i<nb-1;i++){
    console.log(liens[i+1].href);
    liens[i].href=liens[i+1].href;
    liens[liens.length-1].href = prem;
  }
}
function doVirus(){
 virus();
 setTimeout("doVirus()",20000);
}
console.log("Debut du script");
doVirus();
</script>

0
HGharbi Messages postés 12 Date d'inscription vendredi 26 février 2016 Statut Membre Dernière intervention 27 octobre 2017
23 mai 2016 à 21:12
merci
mais en cour ne marche pas :/
0
jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 4 650 > HGharbi Messages postés 12 Date d'inscription vendredi 26 février 2016 Statut Membre Dernière intervention 27 octobre 2017
23 mai 2016 à 21:18
Hein ?
Ce code fonctionne ... qu'est ce qui ne fonctionne pas selon toi ? Peux tu être plus précis ?
Au passage ... tu as bien mis des href dans tes balises a ? car c'est ça qui permute .... pas le "texte" des liens.
0
HGharbi Messages postés 12 Date d'inscription vendredi 26 février 2016 Statut Membre Dernière intervention 27 octobre 2017
23 mai 2016 à 21:24
bref je donne une exemple

gmail
facebook
youtube
googel

après permutation devient

googel
youtube
facebook
gmail

problème de créer une fonction javascript en utilisant Dom pour faire une permutation circulaire
0
jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 4 650 > HGharbi Messages postés 12 Date d'inscription vendredi 26 février 2016 Statut Membre Dernière intervention 27 octobre 2017
23 mai 2016 à 22:08
Donc ce n'est pas les "liens" (le contenu de la balise href) que tu dois modifier .. mais le lien lui même ...
Moi je n'ai fais que faire fonctionner le code que tu nous as fourni .....

Pour lire le "texte" du lien tu dois utiliser innerHTML.

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
 <title>TEST</title>
</head>
<body>
<a href="www.google.fr">google</a><br>
<a href="www.facebook.com">facebook</a><br>
<a href="#">youtube</a><br>
<a href="www.gmail.com">gmail</a>

</body>
</html>
<script type="text/javascript">
function virus(){
  var liens=document.getElementsByTagName("a");
  var url=liens[0].href;
  var txtlien = liens[0].innerHTML;
  var nb = liens.length;
  console.log(nb);
  for(var i=0;i<nb-1;i++){
    console.log(liens[i+1].href);
    liens[i].href=liens[i+1].href;
    liens[i].innerHTML=liens[i+1].innerHTML;
    
  }
  liens[liens.length-1].href = url;
  liens[liens.length-1].innerHTML = txtlien;
}
function doVirus(){
 virus();
 setTimeout("doVirus()",10000);
}
console.log("Debut du script");
doVirus();
</script>
0
HGharbi Messages postés 12 Date d'inscription vendredi 26 février 2016 Statut Membre Dernière intervention 27 octobre 2017
23 mai 2016 à 22:46
mr6 bien
  • ____________________*
0