IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

compter les éléments dans une balise


Sujet :

JavaScript

Vue hybride

Sh4dow49 compter les éléments dans une... 04/09/2008, 20h32
SpaceFrog childNodes.length en ayant... 04/09/2008, 20h37
Sh4dow49 Alors j'ai essayé et j'ai... 04/09/2008, 21h44
SpaceFrog si c'est pour compter les... 05/09/2008, 08h44
Sh4dow49 Et est ce qu'il n'y aurait... 05/09/2008, 09h48
Sh4dow49 En fait je me demandais si ce... 05/09/2008, 20h00
Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Avril 2007
    Messages
    483
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations forums :
    Inscription : Avril 2007
    Messages : 483
    Par défaut compter les éléments dans une balise
    Bonjour,

    La question est simple et dans le titre : comment peut-on compter le nombre d'éléments dans une balise sans être dans un formulaire ?

    J'ai par exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    <div id="block1" class="conteneur" >
    	<div class="item" >item avec du texte</div>
    	<div class="item" >item avec un autre text</div>
    </div>
    <div id="block2" class="conteneur" >
    	<div class="item" >blablabla</div>
    </div>
    <div id="block3" class="conteneur" >
    	<div class="item" >aaa</div>
    	<div class="item" >bbb</div>
    	<div class="item" >ccc</div>
    </div>
    Toujours pour l'exemple : je voudrais compter en javascript le nombre de div ayant pour class "item" dans la div ayant pour class "conteneur" et pour id "block3"

    Est ce possible et si oui comment ? (je cherche depuis hier mais en vain )

    Help me please

    Grand merci d'avance à ceux qui m'aideront à résoudre ce problème

  2. #2
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 658
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

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

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 658
    Billets dans le blog
    1
    Par défaut
    en ayant pris soin d'utiliser le nodeCleaner !
    Ma page Developpez - Mon Blog 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

    Venez sur le Chat de Développez !

  3. #3
    Membre éclairé
    Inscrit en
    Avril 2007
    Messages
    483
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations forums :
    Inscription : Avril 2007
    Messages : 483
    Par défaut
    Alors j'ai essayé et j'ai grossièrement ce que je voulais mais je n'arrive pas à l'exploiter

    voila ce que j'ai :

    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
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
     
    <div id="sort1" class="groupWrapper">
    	<div id="newsFeeder" class="groupItem">
     
    		<div class="itemHeader">Feeds</div>
    		<div class="itemContent">
    			<p>blabla</p>
    		</div>
    	</div>
    	<div id="news" class="groupItem">
    		<div class="itemHeader">News</div>
    		<div class="itemContent">		
    			<p>blabla</p>
    		</div>
    	</div>
    	<p>&nbsp;</p>
     
    </div>
    <div id="sort2" class="groupWrapper" name="sort2">
    	<div id="shop" class="groupItem">
    		<div class="itemHeader">Shopping</div>
    		<div class="itemContent">
    			<p>blabla</p>
    		</div>
    	</div>
    	<p>&nbsp;</p>
    </div>
    <div id="sort3" class="groupWrapper">
    	<div id="links" class="groupItem">
     
    		<div class="itemHeader">Links</div>
    		<div class="itemContent">
    			<p>blabla</p>
    		</div>
    	</div>
    	<div id="images" class="groupItem">
    		<div class="itemHeader">Images</div>
    		<div class="itemContent">
    			<p>blabla</p>
    		</div>
    	</div>
    	<p>&nbsp;</p>
     
    </div>
    <script type="text/javascript">
    $(document).ready(
    	function () {
    		$('div.groupWrapper').Sortable(
    			{
    				accept: 'groupItem',
    				helperclass: 'sortHelper',
    				activeclass : 	'sortableactive',
    				hoverclass : 	'sortablehover',
    				handle: 'div.itemHeader',
    				tolerance: 'pointer',
    				onChange : function(ser)
    				{
    				},
    				onStart : function()
    				{
    					$.iAutoscroller.start(this, document.getElementsByTagName('body'));
    				},
    				onStop : function()
    				{
    					$.iAutoscroller.stop();
     
    					var fils = document.getElementById("sort2").childNodes;
    					var nbFils = document.getElementById("sort2").childNodes.length;
    					var nb = 0;
     
    					for (var i = 1; i <= nbFils; i++)
    					{
    						if (fils[i].nodeName == "DIV")
    						{
    							nb++;
    							alert(nb);
    						}
    					}
     
    					alert(nb); //cette ligne ne fait rien !
    				}
    			}
    		);
    	}
    );
    </script>
    		<script language="JavaScript" type="text/javascript">var client_id = 1;</script>
    		<script language="JavaScript" src="http://stats.byspirit.ro/track.js" type="text/javascript"></script>
    		<noscript>
    		<p><img alt="" src="http://stats.byspirit.ro/image.php?client_id=1" width="1" height="1" /></p>
    		</noscript>
    </body>
    </html>
    Le commentaire parle de lui même : je n'arrive pas à afficher le nombre d'éléments.

    En gros, le code mis après la boucle for dans le onStop ne s'exécute pas et je ne vois pas pourquoi ...
    J'ai pensé à une erreur de syntaxe mais tout semble correct ... (ou je ne vois pas l'erreur)

    Pouvez vous m'aider encore svp ?

  4. #4
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 658
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

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

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 658
    Billets dans le blog
    1
    Par défaut
    si c'est pour compter les divs enfants ......

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    obj.getElementsByTagName('div')
    Ma page Developpez - Mon Blog 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

    Venez sur le Chat de Développez !

  5. #5
    Membre éclairé
    Inscrit en
    Avril 2007
    Messages
    483
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations forums :
    Inscription : Avril 2007
    Messages : 483
    Par défaut
    Et est ce qu'il n'y aurait pas la même solution mais au lieu de récupérer les éléments enfants via le tag, plutôt les récupérer grâce à leur class ? (pour ne récupérer que le nombre d'éléments ayant la class "groupItem")

    Ce que tu m'as proposé marche mais comme j'ai des div imbriqués il me renvoie 3 pour 1 item, 6 pour 2 etc ...

  6. #6
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 658
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

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

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 658
    Billets dans le blog
    1
    Par défaut
    utilise JQUERY ou Prototype ...ce genre de fonctions avancées sont comprises dans leurs libs...
    Ma page Developpez - Mon Blog 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

    Venez sur le Chat de Développez !

  7. #7
    Membre éclairé
    Inscrit en
    Avril 2007
    Messages
    483
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations forums :
    Inscription : Avril 2007
    Messages : 483
    Par défaut
    En fait je me demandais si ce n'était pas plus simple de limiter le nombre de "places" dans un groupWrapper à 3 par exemple (je cherche depuis 15 minutes mais je n'ai pas trouvé comment faire pour l'instant, si quelqu'un sais ... )

Discussions similaires

  1. Réponses: 1
    Dernier message: 22/01/2008, 16h58
  2. Réponses: 5
    Dernier message: 10/12/2007, 16h15
  3. Réponses: 10
    Dernier message: 27/03/2006, 18h38
  4. ajout éléments dans une balise select
    Par wehtam dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 18/08/2005, 14h03
  5. [TestStand] Compter les éléments d'une chaîne de caractères
    Par capblans dans le forum Autres langages
    Réponses: 2
    Dernier message: 29/04/2005, 09h29

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo