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 :

[DOM] DOM : parcourir des <td> et supprimer leurs enfants


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    77
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2005
    Messages : 77
    Par défaut [DOM] DOM : parcourir des <td> et supprimer leurs enfants
    Bonjour,

    comme l'indique assez clairement le titre, je dois parcourir une balise <tr> en javascript afin de supprimer ses enfants si elle en a.
    Je vous explique quand même plus globalement mon projet : il s'agit d'un tableau de compétences (notées de 1 à 4 en verticale) concernant des élèves (chaque ligne = 1 élève). Le but étant de reproduire un peu le comportement de boutons radio mais à l'intérieur du tableau. Je vous fourni mon code qui ne fonctionne pas, je crois que je vais le retaper à l'aide des sélecteurs de jquery, ca sera bcp plus simple.
    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
    function toggleCompetence(cell) {
    	var checked = null;
    	var source = null;
    	var eleve = cell.parentNode.attributes[0].nodeValue;
    	var niveau = cell.attributes[1].nodeValue;
    	var competence = document.getElementById("competence").attributes[0].nodeValue.substr(35, 1);
    	var ligne = cell.parentNode; //récupère l'objet TR, contient donc 5 TD
     
    	for (var i=5; i<=ligne.childNodes.length; i+=2) { //on commence après la ligne d'en tête et son enfant #text
    		if(ligne.childNodes[i].childNodes.length>0) {
    			alert(i+" / hasChildNodes");
    		} else {//on coche l'actuelle
    			if (ajaxToggleCompetence(eleve, niveau, "add", competence)) {
    				source = document.createAttribute("src");
    					source.nodeValue = "img/point_"+niveau+".gif";
    				checked = document.createElement('img');
    					checked.setAttributeNode(source);
    				cell.appendChild(checked);
    			}
    		}
    	}
    }
    Merci de votre aide en tout cas

  2. #2
    Expert éminent

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Par défaut
    Bonjour,
    Citation Envoyé par WalidNat Voir le message
    comme l'indique assez clairement le titre, je dois parcourir une balise <tr> en javascript afin de supprimer ses enfants si elle en a.
    je comprends bien la question, et comme souvent, la FAQ a la réponse
    (couplé à getElementsByTagName('tr') pour la boucle)

    Ce qui m'inquiète plus, c'est que tu souhaites supprimer les <td> de certaines lignes
    La structure de ton tableau risque d'en prendre un méchant coup

    => supprime plutôt les <tr>, cela n'aura pas d'impact sur la structure globale de ta table ...

    A+

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    77
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2005
    Messages : 77
    Par défaut
    Oups je me suis mal exprimé.

    Tout d'abord j'ai consulté cette FAQ mais le code ne répond qu'a une partie de ce que je veux faire.
    En fait c'est assez compliqué a décrire, mais je vais réessayer
    J'ai un tableau avec plein de lignes (mes élèves). Chaque élève doit avoir un niveau dans une compétence donnée. Par exemple, tartempion doit être évalué sur la compétence "travailler en équipe" (qui est le titre de mon tableau"). Son prof va donc devoir lui sélectionner un niveau (Acquis, Peu Acquis, Pas acquis etc ...)
    J'ai donc fait un tableau ou j'ai ces niveaux en colonnes, et les élèves en ligne.
    Ce que je voudrais faire, c'est que lorsque je choisi un niveau pour un élève le code vérifie qu'il n'y en ai pas déjà un d'attribué. Si c'est le cas il le supprime et il active le niveau nouvellement sélectionné par le prof.

    Par conséquent, j'ai pensé a ceci :
    1. Récupérer la cellule du tableau sélectionnée
    2. récupérer le niveau (donc la colonne) correspondant a cette cellule
    3. récupérer l'élève (la ligne)
    4. Dans cette ligne <TR>, parcourir mes balises <TD>
    5. vérifier si ces dernieres n'ont pas d'enfant (des images indiquant que la compétence est cochée)
    6. supprimer le cas échéant
    7. enfin rajouter un enfant dans le TD sélectionné pour montrer que c'est cette compétence qui a été choisie

  4. #4
    Expert confirmé
    Avatar de javatwister
    Homme Profil pro
    danseur
    Inscrit en
    Août 2003
    Messages
    3 684
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : danseur

    Informations forums :
    Inscription : Août 2003
    Messages : 3 684
    Par défaut
    salut,

    Tu peux donner un aperçu de ton tableau? Juste pour voir comment tu sélectionnes un "niveau" (option cochée? clic sur icône? liste?);

    de plus, je ne sais pas pourquoi tu "ajoutes un td pour signaler la sélection";

Discussions similaires

  1. [DOM] Boucler sur des <li>
    Par Tchupacabra dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 01/12/2007, 17h33
  2. [DOM] Montrer/Cacher des blocs DIV
    Par Overstone dans le forum Général JavaScript
    Réponses: 25
    Dernier message: 09/08/2007, 10h38
  3. [DOM] DOM: affichage des modifications
    Par Bengo dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 04/06/2007, 16h24
  4. [DOM] DOM et gestion des boutons radio
    Par Ricou13 dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 28/01/2007, 19h58
  5. Réponses: 3
    Dernier message: 04/09/2002, 09h42

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