Signaler

Permutation [Résolu]

Posez votre question HGharbi 11Messages postés vendredi 26 février 2016Date d'inscription 10 octobre 2016 Dernière intervention - Dernière réponse le 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 
Utile
+0
moins plus
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 15434Messages postés mercredi 22 octobre 2003Date d'inscription ModérateurStatut 7 décembre 2016 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.
Répondre
HGharbi 11Messages postés vendredi 26 février 2016Date d'inscription 10 octobre 2016 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
Répondre
jordane45 15434Messages postés mercredi 22 octobre 2003Date d'inscription ModérateurStatut 7 décembre 2016 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>
Répondre
HGharbi 11Messages postés vendredi 26 février 2016Date d'inscription 10 octobre 2016 Dernière intervention - 23 mai 2016 à 22:46
mr6 bien
  • ____________________*
Répondre
jordane45 15434Messages postés mercredi 22 octobre 2003Date d'inscription ModérateurStatut 7 décembre 2016 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
Répondre
Ajouter un commentaire

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes.

Le fait d'être membre vous permet d'avoir des options supplémentaires.

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !