Bonjour, voilà j'ai un noeud enfin un li et je voudrai récupérer ce qu'il y a avant lui.
Comment faire?
Merci d'avance
Bonjour, voilà j'ai un noeud enfin un li et je voudrai récupérer ce qu'il y a avant lui.
Comment faire?
Merci d'avance
attention le noeud avant n'est pas le père !!!
previousSibling te retourn le noeud précédent , parentNode te retourne le noeud parent ...
alors avec previousSibling je recupere le noeud precedent et pour avoir l'id de ce noeud ?
stela !!!!
Code : Sélectionner tout - Visualiser dans une fenêtre à part previousSibling.id
Oui mais je coryais que ça ne fonctionnais pas comme ça merci mon maitre
pas de quoi petite coccinelle ... (oui parceque scarabée ne te vas pas ...)
Non en fait y a un tit soucis ça me met que previousSibling n'a pas de propriété!
alors que bouge est un element html : li
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 function finBouge(bouge){ var MenuTmp = new Array(); for (var i=1;i<Menu.length;i++){ if (Menu[i].id!=bouge.id){ if(Menu[i].id==bouge.previousSibling.id){ MenuTmp[i]=Menu[i]; MenuTmp[i+1]=new Element(bouge.prec,bouge.firstChild.data,bouge.id); } else{ MenuTmp[i]=Menu[i]; } } } Menu=MenuTmp; }
tu testes sous firefox ?
il va falloir scanner les childNodes et tester l'égalité par rapport au node actuel et prende le i-1 ...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 <script type='text/javascript'> function previousNode(thisNode){ var Papa = thisNode.parentNode; var Enfants=Papa.childNodes; for (i=1;i<Enfants.length;i++){ var theOne=(Enfants[i]==thisNode)?Enfants[i-1]:theOne; return theOne; } } </script> </head> <body> <div id="previous">ddf f f f f</div> <div onmouseover="alert(previousNode(this).id)">efdq</div>
oula la c'est pas très clair tout ça ce que je sais c'est qu je teste sous firefox mais il faut que ça marche sous ie aussi
réponse précédente éditée ...
La fonction que tu me donnes en fait retourne quoi exactement?
ben le previsousSibling ...
hum, il me met partout que c'est undefined !
tu passes bien le node en param ?
remets ton code complet stp ...
désolé le return est dasn la boucle ... il faut l'en sortir ...
ça marchait avec deux nodes ...
voici le code revisé qui fonctionne avec plus de deux nodes ...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 <script type='text/javascript'> function previousNode(thisNode){ var Papa = thisNode.parentNode; var Enfants=Papa.childNodes; for (i=1;i<Enfants.length;i++){ var theOne=(Enfants[i]==thisNode)?Enfants[i-1]:theOne; } return theOne.id; } </script> </head> <body> <div id="a1">ddf f f f f</div> <div id="a2" onclick="alert(previousNode(this))">efdq</div> <div id="a3" onclick="alert(previousNode(this))">efdq</div> <div id="a4" onclick="alert(previousNode(this))">efdq</div> <div id="a5" onclick="alert(previousNode(this))">efdq</div> <div id="a6" onclick="alert(previousNode(this))">efdq</div> <div id="a78" onclick="alert(previousNode(this))">efdq</div> <div id="a9" onclick="alert(previousNode(this))">efdq</div> <div id="a10" onclick="alert(previousNode(this))">efdq</div> <div id="a11" onclick="alert(previousNode(this))">efdq</div>
Alors j'ai testé ton code tel quel et il me met toujours undefined ! I don't understand
J'ai une arborescence comme ça,(voir lien ci après) faite de li et de ul imbriquées pour pouvoir deplacer mes rubriques. Lorsque j'en deplace une je voudrais connaitre celle qu'il y a juste avant pour changer l'ordre dans ma liste je redonne mon code
http://www.developpez.net/forums/att...1&d=1150181599
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 function finBouge(bouge){ var MenuTmp = new Array(); for (var i=1;i<Menu.length;i++){ if (Menu[i].id!=bouge.id){ if(Menu[i].id==bouge.previousNode(bouge){ MenuTmp[i]=Menu[i]; MenuTmp[i+1]=new Element(bouge.prec,bouge.firstChild.data,bouge.id); } else{ MenuTmp[i]=Menu[i]; } } } Menu=MenuTmp; }
arf encore le coup des Nodes Text supplémentaires de ffx ...
faut utiliser un NodeCleaner ...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27 <script type='text/javascript'> function previousNode(thisNode){ var Papa = thisNode.parentNode; var Enfants=Papa.childNodes; for (i=1;i<Enfants.length;i++){ if(Enfants[i]==thisNode && (Enfants[i-1].nodeType==1)){var theOne=Enfants[i-1];} if(Enfants[i]==thisNode && (Enfants[i-1].nodeType==3)){var theOne=Enfants[i-2];} } return theOne.id; } </script> </head> <body> <div id="a1">ddf f f f f</div> <div id="a2" onclick="alert(previousNode(this))">daq</div> <div id="a3" onclick="alert(previousNode(this))">efadq</div> <div id="a4" onclick="alert(previousNode(this))">efzaedq</div> <div id="a5" onclick="alert(previousNode(this))">efzaedq</div> <div id="a6" onclick="alert(previousNode(this))">efzaedq</div> <div id="a78" onclick="alert(previousNode(this))">efzaedq</div> <div id="a9" onclick="alert(previousNode(this))">efdzaeq</div> <div id="a10" onclick="alert(previousNode(this))">efzaezaedq</div> <div id="a11" onclick="alert(previousNode(this))">efzaedq</div>
bon suite à une erreur de lien j'ai fait un peu le ménage ...
j'ai rajouté un teste sur le type du node Précédent ...
dasn mon exemple ce sont des div ... tu seras peut être obligé de modifier pour des li et ul ...
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager