Appeler un type de div : javascript

Fermé
Antoine - 12 janv. 2011 à 18:03
Doctor C Messages postés 627 Date d'inscription mardi 12 juin 2007 Statut Membre Dernière intervention 19 février 2016 - 13 janv. 2011 à 16:29
Bonjour, mon problème est en javascript.
J'ai dans un fichier html, un div dont l'id est "image"
dans ce div, on trouve des <img/>, des <p></p> etc
et aussi, des div -spéciaux-
Ces dev spéciaux, je voulais leur donner une class "bloc" mais les pas possible d'utiliser les class en javascript.
Alors, comment est-ce que je fais dans la fonction javascript, pour me placer dans div"image" et pour appeler uniquement les div de mon type bloc ?
Mon objectif est de les compter, pour ensuite récupérer des informations sur eux dans une boucle for.
J'ai essayé avec des name="bloc" mais pas parvenu à quelque chose.
Mon dernier recours sera de bidouiller avec les id genre "bloc1", "bloc2" mais c'est pas très propre et énervant à coder.
Avez vous une solution à me proposer ? Merci beaucoup !
Sachant que je ne peux pas compter manuellement combien j'ai de bloc dans mon fichier html, l'objectif de mon javascript étant de s'adapter à plusieurs html..



3 réponses

xamurai Messages postés 223 Date d'inscription mardi 11 janvier 2011 Statut Membre Dernière intervention 19 février 2013 15
Modifié par xamurai le 12/01/2011 à 20:48
suppose que div1 est une div

et tu veux lui attribuer une class en js, alors tu fais:
div1.className = "nomDeLaClasse"; 
0
xamurai Messages postés 223 Date d'inscription mardi 11 janvier 2011 Statut Membre Dernière intervention 19 février 2013 15
Modifié par xamurai le 13/01/2011 à 16:33
pour avoir les sous-div d'un tag div1:
div1.getElementsByTagName('div');   


cela de retour une liste de tous les divs dans div1.
suppose tu veux verifier la valeur de la class du premier sous-div de div1

var listes = div1.getElementsByTagName('div');   
if(listes.length > 0)   
{   
  alert(listes[0].className);   
}   
0
Doctor C Messages postés 627 Date d'inscription mardi 12 juin 2007 Statut Membre Dernière intervention 19 février 2016 398
Modifié par Doctor C le 12/01/2011 à 20:43
Avec des outils comme la bibliothèque Prototype.js (http://prototypejs.org/ ce qui revient à inclure un fichier javascript dans les pages qui l'utilise, tu peux obtenir très simplement tous les éléments de ta page qui possède une certaine classe.

En gros, pour faire ce que tu demandes avec Prototype.js, tu n'aurais qu'à:

1. Télécharger Prototype.js (c'est gratuit d'utilisation) et placer le fichier javascript avec tes autres scripts js dans ton projet.

Télécharger ici: https://ajax.googleapis.com/ajax/libs/prototype/1.7.0.0/prototype.js

2. Ajouter le fichier prototype.js à ta page web (dans le <head>):

<script type="text/javascript" src="prototype.js"></script>

3. Faire ta jolie fonction avec Prototype (disons que tu as mis "bloc" comme la classe de tes éléments) qui devrait te retourner la liste d'éléments désirés:

Retourne une liste des éléments de classe "bloc" à l'intérieur de ton div "image":
var divs = $('image').select('.bloc');

Ou plus précisément des divs avec classe "bloc":
var divs = $('image').select('div .bloc');

Pour obtenir la taille, il sufft t'appeler la fonction size():
var taille = divs.size();

Ou pour boucler à travers le tableau, on peut utiliser un itérateur:
divs.each(function(item) { 
  // Le code traitant chaque item étant un élément du tableau. 
});

Bon, j'ai fait un peu long mais je trouve que Prototype js marche très bien. Je suppose qu'il existe un équivalent dans JQuery mais je ne suis pas familier avec ce dernier.

Bonne chance!


Echo "Lima Mike Alfa";
0
xamurai Messages postés 223 Date d'inscription mardi 11 janvier 2011 Statut Membre Dernière intervention 19 février 2013 15
Modifié par xamurai le 12/01/2011 à 20:56
Ce n'est pas vraiment le problème du topic...

tu utilises ceci pour élargir des fonctionalités d'un objet ou d'un tag
0
Doctor C Messages postés 627 Date d'inscription mardi 12 juin 2007 Statut Membre Dernière intervention 19 février 2016 398
13 janv. 2011 à 16:29
À y repenser, j'avoue que je me suis compliqué la vie mais c'est toujours bon d'être conscient de ce qui est disponible sur le Web.

En plus, quand on doit circuler d'avantage dans les tags html, c'est très pratique.
0
Je vais essayer les deux solutions.
En commençant par la première qui me paraît la plus facile :D
Merci beaucoup à vous deux pour la sympathie et le professionnalisme de vos réponses ! forum très agréable.
0