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 :

Récupérer un élement sans id


Sujet :

JavaScript

  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2011
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2011
    Messages : 16
    Par défaut Récupérer un élement sans id
    bonjour à tous! Voila j'essaye de créer un script qui me permet de changer le value d'une div en javascript. Mon souci c'est qu'il n'y a ni d'ID n'y ni de Name pour pointer sur l'element!

    Comment puis-je faire ???

  2. #2
    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 : 55
    Localisation : France, Gironde (Aquitaine)

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

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    Autrement peut-être ?

    Tu t'attends à quoi avec le peu d'informations que tu nous donnes ? Qu'on devine ton code, les contraintes, les liens entre les éléments ?
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  3. #3
    Expert éminent

    Avatar de vermine
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    6 582
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2008
    Messages : 6 582
    Par défaut Ca tombe bien, il n'y a pas de value sur une div
    Bonjour,

    Il faut voir selon la structure HTML de la page. Avec certaines méthodes et quelques boucles, on y parviendra sûrement.

  4. #4
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2011
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2011
    Messages : 16
    Par défaut
    En faite je veut modifier un div d'une page a partir de greasemonkey !

    par exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    page html
     
    <div value="123456">salut</div>
    et avec mon script greasemonkey modifier salut et le 123456

    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
    script:
    // ==UserScript==
    // @name Apu Flash!
    // @namespace http://exemple.com/scripts/pubflash/
    // @description Retire les pubs en Flash du site example.com
    // @include http://exemple.com/*
    // ==/UserScript==
     
    (function() {
    	b = document.body;
      	  nouveauinput = document.createElement("input");
    	nouveauinput.innerHTML = "mon_input_ajouter";
    	nouveauinput.type = "submit";
      	  nouveauinput.id = "mon_input_ajouter";
     
      	 b.parentNode.insertBefore(nouveauinput,b);
      	 document.getElementById('mon_input_ajouter').addEventListener('click', touche_entrer, true);
     
    function touche_entrer()
     {
     
      	  alert("coucou");
      	  //ici je voudrai modifier la valeur de la div	  
     }
    }
    )();

  5. #5
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2011
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2011
    Messages : 16
    Par défaut
    j'ai peut être trouvé une solution qu'en pensez vous ??

    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
     
    // DHTML
    var arrayImg = document.body.all.tags("div");
     
    // DOM
    var arrayImg = document.body.getElementsByTagName("div");
     
     
    // boucle sur les tags
     
    for(i=0; i<arrayImg.length; i++)
    {
       var result;
       if( typeof(arrayImg[i]) != 'undefined' )
           result= arrayImg[0].value;
    }

  6. #6
    Expert éminent

    Avatar de vermine
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    6 582
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2008
    Messages : 6 582
    Par défaut
    C'est l'idée précitée.
    Est-ce la meilleure méthode ? Nous ne pouvons le dire. Ca dépend réellement de votre HTML.

  7. #7
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2011
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2011
    Messages : 16
    Par défaut
    voici le code html en question

    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
     
    <div>
    <div class="fb_protected_wrapper" fb_protected="true">
    <div fb_protected="true" import_external_friends="false" actiontext="Ticket de carnaval." exclude_ids="" cols="5" rows="5" bypass="skip" email_invite="false" selected_rows="5" unselected_rows="6" max="60" condensed="true">
    <div class="condensed_multi_friend_selector" style="visibility: visible;">
    <div class="typeahead_holder">
    </div>
    <div class="unselected_list" style="height: 114px;">
    </div>
    <div class="selected_list" style="height: 75px;">
    <label class="clearfix" style="">
    <input class="inputcheckbox " type="checkbox"  value="729313455" >
    <span>Abby*·Lo</span>
    </label>
    <label class="clearfix" style="">
    <input  class="inputcheckbox " type="checkbox"  value="1072118744" >
    <span>Adrien*·Thomas</span>
    </label>
     
    </div>
    j'aimerai changer les value de adriens.thomas et abby.lo
    merci pour votre aide!

  8. #8
    Membre éclairé
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2011
    Messages
    442
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2011
    Messages : 442
    Par défaut
    J'aurais tendance à te conseiller de t'orienter vers jQuery qui te permettra d'accéder aux éléments par leur sélecteur css :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mesElementsHTML = $("input.inputcheckbox span")//suivi éventuellement de .each() pour traiter chacun des deux éléments
    Sinon, tu peux faire par exemple

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    var elements = document.body.getElementsByTagName("input")
    for(var inputElement in elements) {
       inputElement.innerHTML(/*ton nouveau span*/);
    }

  9. #9
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2011
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2011
    Messages : 16
    Par défaut
    merci de ta réponse !! je vais regarder tout sa !!! Si non pour changer le value de l'input je procède comment en jquery?

  10. #10
    Membre éclairé
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2011
    Messages
    442
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2011
    Messages : 442
    Par défaut
    voilà pour le jquery :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $("input.inputcheckbox span").html("nouveau contenu du span");
    Comme tu le sais sans doute, tu as juste besoin de télécharger le fichier jquery.js et de rajouter dans ton head :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <script type="text/javascript" src="jquery.js"></script>
    pour avoir accès à toute la librairie jquery (tu verras, tu ne pourras très vite plus t'en passer ! )

    Attention au passage : dans mon exemple, le jquery change directement le contenu situé entre les balises <span></span> alors que l'exemple précédent sans jquery changeait le contenu situé entre les balises <input></input>

  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 659
    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 659
    Billets dans le blog
    1
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     $("input.inputcheckbox span")
    c'est possible ça un span dans un input ?
    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 !

  12. #12
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2011
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2011
    Messages : 16
    Par défaut
    merci encore ! Pour la source en effet il n'a pas de souci !!

    par contre il y a une chose que tu a mal compris, c'est que j'aimerais aussi changer le value dans les parametres de l'input:


    <input class="inputcheckbox " type="checkbox" value="729313455" >
    ^ ^
    || ||

  13. #13
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 211
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 211
    Par défaut
    Citation Envoyé par SpaceFrog Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     $("input.inputcheckbox span")
    c'est possible ça un span dans un input ?
    j'y crois pas non plus!

    Sans avoir recours à jQuery tu peux avoir la même démarche
    - recherche des INPUT de la page
    - récupération du parent
    - récupération des SPAN du parent
    - faire ce que tu as à faire

    exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    var i, nb;
    var oParent, oInput = document.getElementsByTagName('INPUT');
    for( i = 0, nb = oInput.length; i < nb; i++){
      oParent = oInput[i].parentNode;
      oParent.getElementsByTagName('SPAN')[0].innerHTML = 'Salut du ' +oInput[i].value;
    }
    la question reste de savoir qui est qui ???

  14. #14
    Membre éclairé
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2011
    Messages
    442
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2011
    Messages : 442
    Par défaut
    c'est possible ça un span dans un input ?
    looool mais je suis grave aujourd'hui !

    dsl, évidemment, c'était pas ça. Voilà le code corrigé :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $("label.clearfix span").html("nouveau contenu du span");
    et pour changer les paramètres de l'input :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $("label.clearfix input").each(function(element) {element.value="lalilala";});
    teste la valeur de element.value pour savoir qui est qui, par exemple.

    Sans jquery, je te laisse te référer à noSmoking

  15. #15
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2011
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2011
    Messages : 16
    Par défaut
    merci de votre aide !

  16. #16
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 211
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 211
    Par défaut
    juste une petite retouche au code de Sharcoux
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $("label.clearfix input").each( function( i, element){ // ajout du i
        element.value="lalilala";
      });
    ou encore
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $("label.clearfix input").each( function(){
      this.value="lalilala";
      });
    Mais pourquoi pas jQuery si tu n'as que cela à faire.

  17. #17
    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 659
    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 659
    Billets dans le blog
    1
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $("label.clearfix input").val('coucou')
    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 !

  18. #18
    Membre éclairé
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2011
    Messages
    442
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2011
    Messages : 442
    Par défaut
    Citation Envoyé par SpaceFrog Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $("label.clearfix input").val('coucou')
    euh...ouais, enfin là c'est si tu veux le même contenu pour les deux input, ce dont je doute...

    sinon, merci pour les corrections noSmoking

    en particulier,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $("label.clearfix input").each( function( i, element){ // ajout du i
        element.value="lalilala";
      });
    i est ici l'indice de la balise input rencontrée (indexée à partir de 0), càd i=0 pour ton premier input, i=1 pour le suivant, etc. Si tu connais l'ordre des input, ça peut te suffire à les identifier.

  19. #19
    Membre Expert Avatar de Willpower
    Homme Profil pro
    sans emploi
    Inscrit en
    Décembre 2010
    Messages
    1 009
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : sans emploi

    Informations forums :
    Inscription : Décembre 2010
    Messages : 1 009
    Par défaut
    Comme l'on dit les autres ici, cherche un élément proche récurrent et manipule les nodes (childNode, parentNode, nextNode) pour arriver à l'élément voulu.

    Sinon, comme l'on de nouveau dit les autres, une librairie type jQuery te facilitera sans doute la tâche.

  20. #20
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2011
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2011
    Messages : 16
    Par défaut
    Merci encore une fois votre aide est génial !!!!

Discussions similaires

  1. Comment récupérer les élements sélectionnés d'une ListBox ?
    Par Bleuarff dans le forum Composants VCL
    Réponses: 11
    Dernier message: 23/02/2013, 06h36
  2. Récupérer un champ sans formulaire
    Par Cube55 dans le forum Langage
    Réponses: 2
    Dernier message: 25/05/2007, 09h51
  3. [TinyXML] Récupérer des données sans nom
    Par Bakura dans le forum XML
    Réponses: 4
    Dernier message: 30/03/2007, 18h59
  4. [C#]Récupérer l'url sans le fichier
    Par MABB dans le forum ASP.NET
    Réponses: 3
    Dernier message: 02/11/2006, 15h17
  5. Réponses: 2
    Dernier message: 17/10/2006, 10h54

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