|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Membre actif
![]() |
Bonjour à tous.
Je viens vers vous car il y'a quelque chose qui m'échappe dans JS, je m'explique. J'ai créé une fonction qui, en fonction d'une racine d'ID, supprime tous les éléments ayant cette racine dans leur ID. Le probléme c'est que la suppression ne se fait que sur 1 objet sur 2. Voici mon code : Code :
Si quelqu'un a une idée
__________________
La vie n'est qu'un grain d'éphémère sur une plage d'illusions Mon CV en ligne ICI |
||
|
|
00
|
|
|
#2 | ||
![]() ![]() Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur Inscription : mars 2002 Messages : 30 001 ![]() |
![]() y'avait longtemps quel l'on avait pas eu le une fois sur deux avec un match !! on peut voir ou tu déclares idS ? l'idéal est de mettre la regexp directement dans le match le souci provient du fait que le matche provoque un déplacement du pointeur de la regExp un pansement est de reinitialiser le pointeur de la reg en matchant à vide... Code :
__________________
Ma page Developpez Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts) Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir... Votre post est résolu ? Alors n'oubliez pas le Tag ![]() ![]() réalisations :www.planet-languages.com|www.saftair.com| www.ouestisol.fr | www.sebemex.fr | www.extramiante.fr | www.sistac-alizay.fr | www.acoustishop.fr | www.litt.fr | www.ouestventil.fr |
||
|
|
00
|
|
|
#3 |
|
Expert Confirmé
![]() Inscription : octobre 2003 Messages : 2 886 ![]() |
Salut,
Utilises-tu un framework? Si oui, pourquoi ne pas l'utiliser pleinement en faisant appel directement aux sélecteurs CSS. Tu n'aurais même plus à boucler, si c'est jQuery. |
|
|
00
|
|
|
#4 | ||||
|
Membre actif
![]() |
Merci pour vos réponses
idS est declaré ainsi Code :
Code :
En fait j'utilise souvent cette fonction (avec d'autres actions, d'ou l'appel à du JQuery), sans avoir ce probléme. De plus avec mon code plus haut en fait il y'a : divImage1Vers1 qui est supprimé divImage1Vers2 qui est ignoré divImage1Vers3 qui est supprimé etc... Je vais voir essayer le réinit du match cet aprém. P.S : Je n'utilise pas jQuery car je débute en JQuery et pour l'instant je ne l'utilise que pour les trucs qui sont pas faisables en JS "standard". Aprés si y' un truc en Jquery, je prends
__________________
La vie n'est qu'un grain d'éphémère sur une plage d'illusions Mon CV en ligne ICI |
||||
|
|
00
|
|
|
#5 | ||
![]() ![]() Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur Inscription : mars 2002 Messages : 30 001 ![]() |
Code :
pour l'explication du pointeur http://www.developpez.net/forums/d82...script/regexp/
__________________
Ma page Developpez Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts) Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir... Votre post est résolu ? Alors n'oubliez pas le Tag ![]() ![]() réalisations :www.planet-languages.com|www.saftair.com| www.ouestisol.fr | www.sebemex.fr | www.extramiante.fr | www.sistac-alizay.fr | www.acoustishop.fr | www.litt.fr | www.ouestventil.fr |
||
|
|
00
|
|
|
#6 | |
![]() ![]() ![]() Didier MouronvalDéveloppeur Web Inscription : juin 2008 Messages : 13 802 ![]() |
Spaffy, il y a aussi l'erreur classique de supprimer un élément de tableau alors qu'on est en train de boucler dessus
En gros, si le tableau à 5 éléments, si tu effaces l'entrée 2, l'occurrence suivante (3) correspondra en fait à l'indice 4 du tableau d'origine EDIT : Citation:
Lesquels ???
__________________
Pas de question technique par MP ! Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi ! Vous possédez un blog et aimeriez diffuser vos billets sur le forum, contactez-moi ! Mes formations video2brain : La formation complète sur JavaScript • JavaScript et le DOM par la pratique • PHP 5 et MySQL : les fondamentaux Mon livre sur jQuery
|
|
|
00
|
|
|
#7 |
![]() ![]() Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur Inscription : mars 2002 Messages : 30 001 ![]() |
arf yesss Beef
ou commencer par la fin et décrémenter
__________________
Ma page Developpez Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts) Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir... Votre post est résolu ? Alors n'oubliez pas le Tag ![]() ![]() réalisations :www.planet-languages.com|www.saftair.com| www.ouestisol.fr | www.sebemex.fr | www.extramiante.fr | www.sistac-alizay.fr | www.acoustishop.fr | www.litt.fr | www.ouestventil.fr |
|
|
00
|
|
|
#8 | ||||
|
Membre actif
![]() |
Merci pour vos réponses rapides,
j'essaye cela ce midi en rentrant chez moi. C'est vrai que le parcours d'élément, je ne voyais pas cela comme un tableau, mais effectivement si il supprime l'élément du tableau y'a décallage et l'élement d'aprés est passé. Mais histoire de bien comprendre ce qui se passe en fait : le "while(elt[0])" sert à justement prendre rééllement tous les élements, donc il faut que je le mette à la place du Code :
for(i = 0; i<listeDivEnf.length ; i++){... Ou sinon je peut incrémenter un compteur et supprimer l'element comme suis Code :
Des trucs du genre : Code :
Je test tout ça et je reviens vers vous. Mille mercis pour vos éclaircissement (je suis un peu confus aussi car j'ai l'impression que ce probléme arrive assez souvent)
__________________
La vie n'est qu'un grain d'éphémère sur une plage d'illusions Mon CV en ligne ICI |
||||
|
|
00
|
|
|
#9 |
![]() ![]() ![]() Didier MouronvalDéveloppeur Web Inscription : juin 2008 Messages : 13 802 ![]() |
Attention, le while(elt[0]) servira pour supprimer tous les éléments listés. Pour n'en supprimer qu'une partie, il faut passer par une boucle inversée :
Code :
for(i = listeDivEnf.length - 1; i>=0 ; i--) Code :
if ($j(listeDivEnf[i]).css("display")=="none") Code :
if (listeDivEnf[i].style.display=="none")
__________________
Pas de question technique par MP ! Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi ! Vous possédez un blog et aimeriez diffuser vos billets sur le forum, contactez-moi ! Mes formations video2brain : La formation complète sur JavaScript • JavaScript et le DOM par la pratique • PHP 5 et MySQL : les fondamentaux Mon livre sur jQuery
|
|
00
|
|
|
#10 |
|
Expert Confirmé
![]() Inscription : octobre 2003 Messages : 2 886 ![]() |
Je ne sais pas sur quel genre de projet tu travailles. Soit, jQuery est utilisé ailleurs, à ce moment là "tu dois" l'utiliser. Soit il n'est utilisé nulle part ailleurs, à ce moment là supprimes
|
|
|
00
|
|
|
#11 | |
|
Membre actif
![]() |
Citation:
if (listeDivEnf[i].style.display=="none") ne raméne rien si il n'est défini QUE dans le CSS mais la version JQuery raméne bien quelque chose. (avant de prendre la version JQuery, j'utilisais ta méthode qui ne fonctionnait pas la "premiére" fois que l'objet passait dans le test). Franculo_caoulene, le jQuery est bien utilisé autre part (mais pas de rapport avec mon probléme donc je l'ai pas mis...(en fait si CF plus haut)). Je dois pas être bien OP ce matin, Bovino effectivemment la boucle inversé régle cette partie du probléme assez facilement (je sais pas pourquoi dans ma tête je voyais l'usine à gaz => à tort). Je test et je reviens vers vous en début d'aprém. Bon ap'
__________________
La vie n'est qu'un grain d'éphémère sur une plage d'illusions Mon CV en ligne ICI |
|
|
|
00
|
|
|
#12 |
|
Membre actif
![]() |
Re bonjour,
avec simplement Code :
for(i = listeDivEnf.length - 1; i>=0 ; i--) Je n'ai pas eu besoin de modifier le regexp. Merci beaucoup pour vos réponses rapides et ô combien utile ![]() ![]() Bonnes fêtes
__________________
La vie n'est qu'un grain d'éphémère sur une plage d'illusions Mon CV en ligne ICI |
|
|
00
|
|
|
#13 | |||||
|
Membre expérimenté
![]() ![]() Duke Jikel Inscription : mai 2010 Messages : 339 ![]() |
Citation:
quand tu fais un Code :
var div = machin.getElementsByTagName('div'); J'espère avoir été assez clair. Si plus d'infos demandez moi |
|||||
|
|
00
|
|
|
#14 | |||||
![]() ![]() Daniel HagnoulÉtudiant perpétuel Inscription : février 2009 Messages : 3 221 ![]() |
Bonsoir
Citation:
![]() Code :
Code :
__________________
FAQ jQuery Mon cahier d’exercices sur jQuery & CoSi un message vous a aidé ou vous semble pertinent, votez pour lui ! ![]() |
|||||
|
00
|
|
|
#16 |
![]() ![]() Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur Inscription : mars 2002 Messages : 30 001 ![]() |
tester ? pourquoi faire ...
__________________
Ma page Developpez Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts) Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir... Votre post est résolu ? Alors n'oubliez pas le Tag ![]() ![]() réalisations :www.planet-languages.com|www.saftair.com| www.ouestisol.fr | www.sebemex.fr | www.extramiante.fr | www.sistac-alizay.fr | www.acoustishop.fr | www.litt.fr | www.ouestventil.fr |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com