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 :

Supprimer une colonne en javascript


Sujet :

JavaScript

  1. #1
    Membre du Club
    Inscrit en
    Décembre 2005
    Messages
    172
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 172
    Points : 43
    Points
    43
    Par défaut Supprimer une colonne en javascript
    Bonjour à tous,

    j'aimerais supprimer une colonne d'un tableau en fonction de la classe utilisé dans le TD.
    Voici un exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <table>
      <tr> 
        <td class="suppr">.....</td>
        <td class="a garder">.....</td>
        <td class="suppr">.....</td>
        <td class="a garder">.....</td>
        <td class="suppr">.....</td>
      </tr>
    </table>
    Il faudrait que je puisse supprimer en javascript tous les TD contenant la class="suppr".
    Est ce possible? Si oui pourriez vous m'aiguillez?

    Merci

  2. #2
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Points : 15 059
    Points
    15 059
    Par défaut
    Bonjour,

    En récupérant tous les td qui ont la classe "suppr" puis les parcourir pour supprimer en faisant un truc du genre element.parentNode.removeChild(element).



    Sinon, si tu utilises jQuery
    A+.

  3. #3
    Membre du Club
    Inscrit en
    Décembre 2005
    Messages
    172
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 172
    Points : 43
    Points
    43
    Par défaut
    Tout d'abord, je te remercie pour ta réponse.

    J'avais déjà lu dans des forums pour l'utilisation element.parentNode.removeChild(element).
    Mais par contre la chose que je n'arrive pas à faire c'est de parcourir mon tableau et de récupérer les élements TD qui ont la classe suppr.

    pourrais tu m'aider?

  4. #4
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Points : 15 059
    Points
    15 059
    Par défaut
    En utilisant le script du lien plus haut

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    var suppr = document.getElementsByReg("suppr","class");
    for (i=0; i < suppr.length; i++)
    {
        element = suppr[i];
        element.parentNode.removeChild(element);
    }
    A titre d'info, il existe une fonction document.getElementsByClassName mais ce n'est pas crossbrowser (pas supporter par IE 5.5 IE 6 IE 7 IE8).

    A+.

  5. #5
    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 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    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 640
    Points : 66 665
    Points
    66 665
    Billets dans le blog
    1
    Par défaut
    getElementsByTagName('td') puis tu boucles dessus pour tester le .className ...

  6. #6
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    • getElementsByClassName()
    • querySelectorAll()

  7. #7
    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 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    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 640
    Points : 66 665
    Points
    66 665
    Billets dans le blog
    1
    Par défaut
    Beef => navigateurs récents ...

  8. #8
    Membre du Club
    Inscrit en
    Décembre 2005
    Messages
    172
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 172
    Points : 43
    Points
    43
    Par défaut
    Citation Envoyé par SpaceFrog Voir le message
    getElementsByTagName('td') puis tu boucles dessus pour tester le .className ...

    Comment je boucle là dessus ? Je n'ai pas vraiment de notion en JavaScript.
    Pour récupérer l'élément className, je dois utiliser un getattribut, c'est bien ça ?

  9. #9
    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 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    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 640
    Points : 66 665
    Points
    66 665
    Billets dans le blog
    1
    Par défaut
    Oula fillot ...
    T'emballes pas jquery n'est a mon avis pas encore à sa portée..
    Et les regexp non plus ...

    Mieux vaut aborder la question avec du bon vieux js de base
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    tabTds=document.getElementsByTagName('td')
    nbr=tabTds.length
     
    for(i=0;i<nbr;i++){
    if(tabTds[i].className=="suppr"){
      tabTds[i].style.display="none"
    }

  10. #10
    Membre du Club
    Inscrit en
    Décembre 2005
    Messages
    172
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 172
    Points : 43
    Points
    43
    Par défaut
    Je vous explique plus en détail. Je fais de la reprise de code et certaines choses ne marchent pas.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var contenu = p.Main.document.getElementById("blabla").outerHTML;
    On récupère tous les éléments de la zone blabla et avec l'aide d'expression régulière on aimerait supprimer des infos de la variable contenu.
    Comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    contenu.replace(/<TD[^>(?!class)]*[^>]class="?suppr[^>]*>([\s\S](?!<\/TD))*[\s\S]<\/TD>\s*(<T[DR][^<]*<\/TD>)*/igm, "");
    Je ne comprends pas trop les expressions régulières mais je vois que l'on essai d'enlever toutes les balises TD qui ont la classe suppr.

    Ceci ne fonctionne pas très bien.

    Auriez-vous une idée ?

  11. #11
    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 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    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 640
    Points : 66 665
    Points
    66 665
    Billets dans le blog
    1
    Par défaut
    qui t'as parlé de replace ???

  12. #12
    Membre du Club
    Inscrit en
    Décembre 2005
    Messages
    172
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 172
    Points : 43
    Points
    43
    Par défaut
    Ce sont les personnes qui ont codé l'application avant moi qui ont fait ça.
    Je dois réparer et remplacer les bugs.
    Maintenant si tu as une autre solution je suis preneur sans utiliser les replace et expressions régulières. Crois-moi j'en pleure aussi depuis hier.

    Je suis paumé, c'est la galère pour moi. Je garde espoir avec l'aide de personne comme toi.

  13. #13
    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 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    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 640
    Points : 66 665
    Points
    66 665
    Billets dans le blog
    1
    Par défaut
    Si tu avais lu ma réponse précédente

  14. #14
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Points : 15 059
    Points
    15 059
    Par défaut
    Citation Envoyé par SpaceFrog Voir le message
    Oula fillot ...
    T'emballes pas jquery n'est a mon avis pas encore à sa portée..
    Et les regexp non plus ...

    Mieux vaut aborder la questiin avec du bon vieux js de base
    Effectivement Spaffy .

  15. #15
    Membre du Club
    Inscrit en
    Décembre 2005
    Messages
    172
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 172
    Points : 43
    Points
    43
    Par défaut
    j'ai une erreur quand j'utilise ton code.
    objet attendu à mon lien
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    <a class="Lien" href="#" onclick="ExportExcelPlan();return false;"><cmtrad>Écran</cmtrad></a>

    Dois je rajouter quelque chose en paramètre d'appel de ma fonction ExportExcelplan(...)?

  16. #16
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    Citation Envoyé par Naruto_kun
    Dois je rajouter quelque chose en paramètre d'appel de ma fonction ExportExcelplan(...)?
    Ben... ça dépend
    Elle sort d'où cette fonction ? Et quel est le rapport avec les messages précédents ???
    Et au passage, la balise <cmtrad>, elle sort d'où elle aussi ?

  17. #17
    Membre du Club
    Inscrit en
    Décembre 2005
    Messages
    172
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 172
    Points : 43
    Points
    43
    Par défaut
    Ben en faite, c'est lorsque je clique sur ce lien que mon export excel se lance.
    Le cmtrad me permettra de faire une internationalisation des champs.

    Voici le code executé lorsque je clique sur ExportExcelplan:
    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
    function ExportExcelPlan() {
        var chaineHtml = "";
        var p = window.parent;
     
        var contenu = p.Main.document.getElementById("MonTableau").outerHTML;
     
       tabTds=document.getElementsByTagName('TD')
       nbr=tabTds.length
     
       for(i=0;i<nbr;i++){
       if(tabTds[i].className=="suppr"){
         alert("ok");
       }
     
        contenu = contenu.replace(/<TD.*suppr.*<\/TD>.*/igm, "");

  18. #18
    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 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    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 640
    Points : 66 665
    Points
    66 665
    Billets dans le blog
    1
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
      contenu = contenu.replace(/<TD.*suppr.*<\/TD>.*/igm, "");



    dans ta boucle tu teste si le class est suppr
    si c'est true , colle un style display none

    a quoi sert ton alert ?
    a quoi sert ton replace ?

  19. #19
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Points : 15 059
    Points
    15 059
    Par défaut
    Tu peux aussi nous montrer la fonction en entier? J'ai peur qu'il te manque de "}" fermante pour la boucle "for".

    A+.

  20. #20
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var contenu = p.Main.document.getElementById("MonTableau").outerHTML;
    outerHTML, c'est uniquement IE !

    Si j'en crois ton code, il semblerait que ton tableau soit dans une frame ou une iframe, dans ce cas
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    tabTds=document.getElementsByTagName('TD')
    a de fortes chances de ne pas te renvoyer les bons résultats (tu ne sembles pas être dans le bon document).

    Sinon, tu ferais mieux d'utiliser le mot-clé var systématiquement lorsque tu déclares ou initialise une variable et de finir chaque instruction par un point-virgule.

    Ensuite, ne le prends pas mal, mais
    Je dois réparer et remplacer les bugs.
    C'est bien, mais
    Je n'ai pas vraiment de notion en JavaScript.
    est légèrement incompatible... A moins bien sûr que ton but soit uniquement de "remplacer les bugs"

    A mon sens, tu gagnerais fortement à commencer par apprendre au moins les fondamentaux de JavaScript.

Discussions similaires

  1. [Oracle 7.3.4]Supprimer une colonne d'une table
    Par soazig dans le forum Oracle
    Réponses: 6
    Dernier message: 23/02/2006, 19h24
  2. [excel]comment supprimer une colonne vide...
    Par Mugette dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 19/10/2005, 13h10
  3. Supprimer une colonne SQLServer 6.5
    Par Mr N. dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 23/09/2004, 17h16
  4. Instruction SQL qui supprime une colonne d'une table
    Par tseg dans le forum Langage SQL
    Réponses: 2
    Dernier message: 31/10/2003, 20h47
  5. Supprimer une colonne sous SQL Serveur 2000
    Par WOLO Laurent dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 14/07/2003, 12h24

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