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 ???
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 ???
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 JavaScript • JavaScript et le DOM par la pratique • PHP 5 et MySQL : les fondamentaux
Mon livre sur jQuery
Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum
Bonjour,
Il faut voir selon la structure HTML de la page. Avec certaines méthodes et quelques boucles, on y parviendra sûrement.
En faite je veut modifier un div d'une page a partir de greasemonkey !
par exemple :
et avec mon script greasemonkey modifier salut et le 123456
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3page html <div value="123456">salut</div>
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 } } )();
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; }
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.
voici le code html en question
j'aimerai changer les value de adriens.thomas et abby.lo
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>
merci pour votre aide!
J'aurais tendance à te conseiller de t'orienter vers jQuery qui te permettra d'accéder aux éléments par leur sélecteur css :
Sinon, tu peux faire par exemple
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
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*/); }
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?
voilà pour le jquery :
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 $("input.inputcheckbox span").html("nouveau contenu du span");
pour avoir accès à toute la librairie jquery (tu verras, tu ne pourras très vite plus t'en passer !
Code : Sélectionner tout - Visualiser dans une fenêtre à part <script type="text/javascript" src="jquery.js"></script>)
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>
c'est possible ça un span dans un input ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part $("input.inputcheckbox span")
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 !
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" >
^ ^
|| ||
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
la question reste de savoir qui est qui ???
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; }
Les joies du CSS | Réponses sur forum | Simple comme JS | Essais libres autour de l'API G$$gle Maps
✂ ---------------------------------------------
developpez.net c'est aussi :
✔ Les meilleurs cours et tutoriels pour apprendre le CSS
✔ Les meilleurs cours et tutoriels pour apprendre le (X)HTML
✔ Les meilleurs cours et tutoriels pour apprendre le JavaScript
looool mais je suis grave aujourd'hui !c'est possible ça un span dans un input ?
dsl, évidemment, c'était pas ça. Voilà le code corrigé :
et pour changer les paramètres de l'input :
Code : Sélectionner tout - Visualiser dans une fenêtre à part $("label.clearfix span").html("nouveau contenu du span");
teste la valeur de element.value pour savoir qui est qui, par exemple.
Code : Sélectionner tout - Visualiser dans une fenêtre à part $("label.clearfix input").each(function(element) {element.value="lalilala";});
Sans jquery, je te laisse te référer à noSmoking
juste une petite retouche au code de Sharcoux
ou encore
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"; });
Mais pourquoi pas jQuery si tu n'as que cela à faire.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 $("label.clearfix input").each( function(){ this.value="lalilala"; });
Les joies du CSS | Réponses sur forum | Simple comme JS | Essais libres autour de l'API G$$gle Maps
✂ ---------------------------------------------
developpez.net c'est aussi :
✔ Les meilleurs cours et tutoriels pour apprendre le CSS
✔ Les meilleurs cours et tutoriels pour apprendre le (X)HTML
✔ Les meilleurs cours et tutoriels pour apprendre le JavaScript
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 !
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,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.
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"; });
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.
Merci encore une fois votre aide est génial !!!!
Partager