Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > JavaScript
JavaScript Forum programmation JavaScript. Lire : Cours JavaScript, FAQ JavaScript, Toutes les FAQ JavaScript et Sources JavaScript
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
Vieux 02/07/2009, 16h53   #1
Invité régulier
 
Inscription : août 2007
Messages : 49
Détails du profil
Informations forums :
Inscription : août 2007
Messages : 49
Points : 9
Points : 9
Par défaut souci récupération div avec getElementsByName

Salut tout le monde,

Je vous explique mon problème.

J'ai une fonction javascript qui me crée des div dans ma div de départ qui à l'id corps.

Code :
1
2
3
4
5
 
for (i=0;i<10;i++)
{
	document.getElementById("corps").innerHTML+="<div name='test"+i+"' id='css_test'></div>";
}
J'utilise donc l'id pour lui donner un style CSS.
Maintenant dans chaque div je veux ajouter à chacune un nombre de lien a aléatoire (selon le nombre d'élément en base de données) et la c'est le drame parce que je ne sais pas comment faire pour récupérer une div avec son name et pas son id, car tous les id sont identique...
J'ai essayé ça en sachant qu'elle est placée dans la boucle i mais ça ne marche pas :

Code :
1
2
3
4
 
for(j=0;j<liste.length;j++){
   document.getElementByName("test"+i)[0].innerHTML+="<a href='#'>test"+j+"</a><br />";
}
Est-ce que quelq'un à une idée???

Merci beaucoup.

Bonne journée
cloud76 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/07/2009, 17h07   #2
Modérateur
 
Avatar de DoubleU
 
Inscription : janvier 2006
Messages : 1 107
Détails du profil
Informations forums :
Inscription : janvier 2006
Messages : 1 107
Points : 1 167
Points : 1 167
L'attribut name ne s'applique qu'aux éléments de formulaire, donc pas aux divs.

Donc pour identifier ta div, utilise son id, pas son name et tu pourras l'accéder par un getElementById.
DoubleU est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/07/2009, 17h08   #3
Rédacteur/Modérateur
 
Avatar de SpaceFrog
 
Homme
Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Inscription : mars 2002
Messages : 29 074
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Royaume-Uni

Informations professionnelles :
Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Secteur : Industrie

Informations forums :
Inscription : mars 2002
Messages : 29 074
Points : 43 300
Points : 43 300
et si tu veux chopper un groupe de divs ...
http://www.developpez.net/forums/d75...filtre-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
SpaceFrog est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/07/2009, 09h39   #4
Invité régulier
 
Inscription : août 2007
Messages : 49
Détails du profil
Informations forums :
Inscription : août 2007
Messages : 49
Points : 9
Points : 9
Merci pour vos réponses, cependant certaines div ont un id identique (pour le css) donc j'ai besoin de les différencier.
Au lieu d'utiliser name, je pourrait utiliser la class.

Par contre il n'existe pas de getElementsByClass...
cloud76 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/07/2009, 09h44   #5
Rédacteur/Modérateur
 
Avatar de andry.aime
 
Homme Andry Aimé
Inscription : septembre 2007
Messages : 4 774
Détails du profil
Informations personnelles :
Nom : Homme Andry Aimé
Localisation : Ile Maurice

Informations forums :
Inscription : septembre 2007
Messages : 4 774
Points : 6 723
Points : 6 723
Bonjour,
Citation:
cependant certaines div ont un id identique
ça ne se fait pas, un id doit être unique.
avec le lien donné par SpaceFrog, tu peux les récupérer avec ses classe.
getElementsByClassName existe :
https://developer.mozilla.org/en/DOM...ntsByClassName
andry.aime est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/07/2009, 09h52   #6
Invité régulier
 
Inscription : août 2007
Messages : 49
Détails du profil
Informations forums :
Inscription : août 2007
Messages : 49
Points : 9
Points : 9
Merci pour ta réponse andry.aime.

Je suis tout à fait d'accord avec toi un id doit être unique.
Cependant comment faire en css si plusieurs div doivent avoir le même style?

On dévit un peu du sujet mais comme ça je me coucherais moins bête ce soir

Et je vais tester le script de spacefrog avec les classes et pas les names (merci encore à lui)
cloud76 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/07/2009, 09h59   #7
Rédacteur/Modérateur
 
Avatar de andry.aime
 
Homme Andry Aimé
Inscription : septembre 2007
Messages : 4 774
Détails du profil
Informations personnelles :
Nom : Homme Andry Aimé
Localisation : Ile Maurice

Informations forums :
Inscription : septembre 2007
Messages : 4 774
Points : 6 723
Points : 6 723
Citation:
comment faire en css si plusieurs div doivent avoir le même style
class c'est fait pour ça, tu le mets le même class pour ces div.
andry.aime est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/07/2009, 10h06   #8
Invité régulier
 
Inscription : août 2007
Messages : 49
Détails du profil
Informations forums :
Inscription : août 2007
Messages : 49
Points : 9
Points : 9
D'accord.

On m'a appris qu'avec une div le style devait être obligatoirement mis avec l'id pour pouvoir interagir avec les éléments contenus dans cette div.

comme ça :
Code CSS :
1
2
3
#test p{
text-align: left;
}
est ce que c'est possible si je met le css dans la class je peux faire ça :
Code CSS :
1
2
3
.test p{
text-align: left;
}

La question peux être bète mais si je peux faire en sorte que l'id soit unique dans mon script je suis tranquille mon script fonctionnera parfaitement.
cloud76 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/07/2009, 10h10   #9
Rédacteur/Modérateur
 
Avatar de SpaceFrog
 
Homme
Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Inscription : mars 2002
Messages : 29 074
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Royaume-Uni

Informations professionnelles :
Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Secteur : Industrie

Informations forums :
Inscription : mars 2002
Messages : 29 074
Points : 43 300
Points : 43 300
.class sur un div fonctionne ...
__________________
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
SpaceFrog est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/07/2009, 10h11   #10
Expert Confirmé
 
Avatar de franculo_caoulene
 
Inscription : octobre 2003
Messages : 2 886
Détails du profil
Informations forums :
Inscription : octobre 2003
Messages : 2 886
Points : 2 559
Points : 2 559
Ceci est une question CSS et non plus javascript

Oui, tu peux le faire, il suffit de tester!
__________________
Penser à la recherche et au bouton
franculo_caoulene est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/07/2009, 10h14   #11
Expert Confirmé
 
Avatar de le_chomeur
 
Développeur informatique
Inscription : février 2006
Messages : 3 524
Détails du profil
Informations personnelles :
Localisation : France

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : février 2006
Messages : 3 524
Points : 3 965
Points : 3 965
un id DOIT être unique !

il te faut donc une méthode getElementByClassName :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
document.getElementsByClassName = function(nomClasse) {
  var TabClassName = new Array();
  var AllElements = document.getElementsByTagName('body')[0].getElementsByTagName('*');
  for (var i = 0 , l = AllElements.length; i < l; i++) {
		listeClass = AllElements[i].className.split(" ");
		//On parcours le tableau pour voir si l'objet appartient a la classe définit
		for(var x = 0 , y = listeClass.length; x < y ; x++){
			if(listeClass[x] == nomClasse){
				TabClassName.push(AllElements[i])
				break;
			}
		}
    }
  return TabClassName;
};
__________________
est ton ami fait gagner du temps à ceux qui aident , donc un message avec la balise résolu laisse plus de temps pour résoudre d'autres problèmes

Premier ministre du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts )
le_chomeur est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/07/2009, 10h16   #12
Rédacteur/Modérateur
 
Avatar de SpaceFrog
 
Homme
Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Inscription : mars 2002
Messages : 29 074
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Royaume-Uni

Informations professionnelles :
Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Secteur : Industrie

Informations forums :
Inscription : mars 2002
Messages : 29 074
Points : 43 300
Points : 43 300
fillot t'as pas suivi le thread ...
il a déja le lien vers le script de la contrib ^^
__________________
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
SpaceFrog est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/07/2009, 10h19   #13
Invité régulier
 
Inscription : août 2007
Messages : 49
Détails du profil
Informations forums :
Inscription : août 2007
Messages : 49
Points : 9
Points : 9
Merci pour toutes vos réponses et votre aide.

Je vais réfléchir à tout ça pour améliorer mon code et rendre surtout les id unique.

Je vous tiendrai au courant.

Je met le poste en résolu

Bonne journée à tous
cloud76 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/07/2009, 10h36   #14
Expert Confirmé
 
Avatar de le_chomeur
 
Développeur informatique
Inscription : février 2006
Messages : 3 524
Détails du profil
Informations personnelles :
Localisation : France

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : février 2006
Messages : 3 524
Points : 3 965
Points : 3 965
si si mais entre le moment ou j'ai écrit et posté , j'ai été dérangé par un collègue xD
__________________
est ton ami fait gagner du temps à ceux qui aident , donc un message avec la balise résolu laisse plus de temps pour résoudre d'autres problèmes

Premier ministre du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts )
le_chomeur est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/07/2009, 12h01   #15
Invité régulier
 
Inscription : août 2007
Messages : 49
Détails du profil
Informations forums :
Inscription : août 2007
Messages : 49
Points : 9
Points : 9
Voilà comme promis de mes nouvelles.

Mon script fonctionne à merveille maintenant.

Mon souci était que je n'utilisait que de div.

Merci encore pour vos réponses.
cloud76 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +1. Il est actuellement 13h37.


 
 
 
 
Partenaires

Hébergement Web