Permutation [Résolu/Fermé]

HGharbi 12 Messages postés vendredi 26 février 2016Date d'inscription 27 octobre 2017 Dernière intervention - 23 mai 2016 à 20:54 - Dernière réponse : jordane45 19206 Messages postés mercredi 22 octobre 2003Date d'inscriptionModérateurStatut 11 décembre 2017 Dernière intervention
- 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>
Afficher la suite 
12Messages postés vendredi 26 février 2016Date d'inscription 27 octobre 2017 Dernière intervention

7 réponses

jordane45 19206 Messages postés mercredi 22 octobre 2003Date d'inscriptionModérateurStatut 11 décembre 2017 Dernière intervention - 23 mai 2016 à 21:05
0
Utile
6
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 :
http://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>

jordane45 19206 Messages postés mercredi 22 octobre 2003Date d'inscriptionModérateurStatut 11 décembre 2017 Dernière intervention > HGharbi 12 Messages postés vendredi 26 février 2016Date d'inscription 27 octobre 2017 Dernière intervention - 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.
HGharbi 12 Messages postés vendredi 26 février 2016Date d'inscription 27 octobre 2017 Dernière intervention - 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
jordane45 19206 Messages postés mercredi 22 octobre 2003Date d'inscriptionModérateurStatut 11 décembre 2017 Dernière intervention > HGharbi 12 Messages postés vendredi 26 février 2016Date d'inscription 27 octobre 2017 Dernière intervention - 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>
HGharbi 12 Messages postés vendredi 26 février 2016Date d'inscription 27 octobre 2017 Dernière intervention - 23 mai 2016 à 22:46
mr6 bien
  • ____________________*
jordane45 19206 Messages postés mercredi 22 octobre 2003Date d'inscriptionModérateurStatut 11 décembre 2017 Dernière intervention > HGharbi 12 Messages postés vendredi 26 février 2016Date d'inscription 27 octobre 2017 Dernière intervention - 23 mai 2016 à 22:52
mr6

En toute lettre ça serait préférable ... dans la charte du site .. le langage SMS est INTERDIT.

Sinon, Si la question est résolue..
Merci de ne pas oublier de clôturer le sujet
(en cliquant sur le lien "Marquer comme résolu" qui se trouve sous le titre de la question)

Cordialement,
Jordane