Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > JavaScript
JavaScript Forum programmation JavaScript. Lire : Cours JavaScript, FAQ JavaScript, Toutes les FAQ JavaScript et Sources JavaScript
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 02/08/2011, 10h19   #1
Invité de passage
 
Homme
Étudiant
Inscription : mars 2011
Messages : 13
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : mars 2011
Messages : 13
Points : 0
Points : 0
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 ???
fullscream est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/08/2011, 10h26   #2
Responsable Développement Web

 
Avatar de Bovino
 
Homme Didier Mouronval
Développeur Web
Inscription : juin 2008
Messages : 13 807
Détails du profil
Informations personnelles :
Nom : Homme Didier Mouronval
Âge : 41
Localisation : France, Gironde (Aquitaine)

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

Informations forums :
Inscription : juin 2008
Messages : 13 807
Points : 35 797
Points : 35 797
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 !
Vous possédez un blog et aimeriez diffuser vos billets sur le forum, 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
Bovino est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/08/2011, 10h26   #3
Responsable JavaScript & AJAX

 
Avatar de vermine
 
Inscription : mars 2008
Messages : 2 686
Détails du profil
Informations personnelles :
Âge : 27

Informations forums :
Inscription : mars 2008
Messages : 2 686
Points : 5 755
Points : 5 755
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.
__________________
Elen Poukram - Isegoria - Sandawe
vermine est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/08/2011, 11h15   #4
Invité de passage
 
Homme
Étudiant
Inscription : mars 2011
Messages : 13
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : mars 2011
Messages : 13
Points : 0
Points : 0
En faite je veut modifier un div d'une page a partir de greasemonkey !

par exemple :

Code :
1
2
3
page html
 
<div value="123456">salut</div>
et avec mon script greasemonkey modifier salut et le 123456

Code :
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	  
 }
}
)();
fullscream est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/08/2011, 12h16   #5
Invité de passage
 
Homme
Étudiant
Inscription : mars 2011
Messages : 13
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : mars 2011
Messages : 13
Points : 0
Points : 0
j'ai peut être trouvé une solution qu'en pensez vous ??

Code :
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;
}
fullscream est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/08/2011, 12h23   #6
Responsable JavaScript & AJAX

 
Avatar de vermine
 
Inscription : mars 2008
Messages : 2 686
Détails du profil
Informations personnelles :
Âge : 27

Informations forums :
Inscription : mars 2008
Messages : 2 686
Points : 5 755
Points : 5 755
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.
__________________
Elen Poukram - Isegoria - Sandawe
vermine est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/08/2011, 13h05   #7
Invité de passage
 
Homme
Étudiant
Inscription : mars 2011
Messages : 13
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : mars 2011
Messages : 13
Points : 0
Points : 0
voici le code html en question

Code :
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!
fullscream est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/08/2011, 13h25   #8
Membre habitué
 
Homme
Étudiant
Inscription : mai 2011
Messages : 226
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : mai 2011
Messages : 226
Points : 126
Points : 126
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 :
mesElementsHTML = $("input.inputcheckbox span")//suivi éventuellement de .each() pour traiter chacun des deux éléments
Sinon, tu peux faire par exemple

Code :
1
2
3
4
var elements = document.body.getElementsByTagName("input")
for(var inputElement in elements) {
   inputElement.innerHTML(/*ton nouveau span*/);
}
Sharcoux est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/08/2011, 14h08   #9
Invité de passage
 
Homme
Étudiant
Inscription : mars 2011
Messages : 13
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : mars 2011
Messages : 13
Points : 0
Points : 0
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?
fullscream est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/08/2011, 14h40   #10
Membre habitué
 
Homme
Étudiant
Inscription : mai 2011
Messages : 226
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : mai 2011
Messages : 226
Points : 126
Points : 126
voilà pour le jquery :

Code :
$("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 :
<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>
Sharcoux est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/08/2011, 14h48   #11
Rédacteur/Modérateur
 
Avatar de SpaceFrog
 
Homme
Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Inscription : mars 2002
Messages : 30 021
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Royaume-Uni

Informations professionnelles :
Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Secteur : Industrie

Informations forums :
Inscription : mars 2002
Messages : 30 021
Points : 45 117
Points : 45 117
Code :
 $("input.inputcheckbox span")
c'est possible ça un span dans un input ?
__________________
Ma page 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


réalisations :www.planet-languages.com|www.saftair.com| www.ouestisol.fr | www.sebemex.fr | www.extramiante.fr | www.sistac-alizay.fr | www.acoustishop.fr | www.litt.fr | www.ouestventil.fr
SpaceFrog est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/08/2011, 14h58   #12
Invité de passage
 
Homme
Étudiant
Inscription : mars 2011
Messages : 13
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : mars 2011
Messages : 13
Points : 0
Points : 0
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" >
^ ^
|| ||
fullscream est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/08/2011, 15h15   #13
Modérateur
 
Avatar de NoSmoking
 
Homme
Inscription : janvier 2011
Messages : 2 944
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Isère (Rhône Alpes)

Informations forums :
Inscription : janvier 2011
Messages : 2 944
Points : 4 776
Points : 4 776
Citation:
Envoyé par SpaceFrog Voir le message
Code :
 $("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 :
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 ???
NoSmoking est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/08/2011, 15h19   #14
Membre habitué
 
Homme
Étudiant
Inscription : mai 2011
Messages : 226
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : mai 2011
Messages : 226
Points : 126
Points : 126
Citation:
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 :
$("label.clearfix span").html("nouveau contenu du span");
et pour changer les paramètres de l'input :

Code :
$("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
Sharcoux est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/08/2011, 15h29   #15
Invité de passage
 
Homme
Étudiant
Inscription : mars 2011
Messages : 13
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : mars 2011
Messages : 13
Points : 0
Points : 0
merci de votre aide !
fullscream est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/08/2011, 15h37   #16
Modérateur
 
Avatar de NoSmoking
 
Homme
Inscription : janvier 2011
Messages : 2 944
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Isère (Rhône Alpes)

Informations forums :
Inscription : janvier 2011
Messages : 2 944
Points : 4 776
Points : 4 776
juste une petite retouche au code de Sharcoux
Code :
1
2
3
$("label.clearfix input").each( function( i, element){ // ajout du i
    element.value="lalilala";
  });
ou encore
Code :
1
2
3
$("label.clearfix input").each( function(){
  this.value="lalilala";
  });
Mais pourquoi pas jQuery si tu n'as que cela à faire.
NoSmoking est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/08/2011, 15h41   #17
Rédacteur/Modérateur
 
Avatar de SpaceFrog
 
Homme
Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Inscription : mars 2002
Messages : 30 021
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Royaume-Uni

Informations professionnelles :
Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Secteur : Industrie

Informations forums :
Inscription : mars 2002
Messages : 30 021
Points : 45 117
Points : 45 117
Code :
$("label.clearfix input").val('coucou')
__________________
Ma page 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


réalisations :www.planet-languages.com|www.saftair.com| www.ouestisol.fr | www.sebemex.fr | www.extramiante.fr | www.sistac-alizay.fr | www.acoustishop.fr | www.litt.fr | www.ouestventil.fr
SpaceFrog est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/08/2011, 15h54   #18
Membre habitué
 
Homme
Étudiant
Inscription : mai 2011
Messages : 226
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : mai 2011
Messages : 226
Points : 126
Points : 126
Citation:
Envoyé par SpaceFrog Voir le message
Code :
$("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 :
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.
Sharcoux est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/08/2011, 22h37   #19
Membre Expert
 
Avatar de Willpower
 
Homme Boris Dessy
sans emploi
Inscription : décembre 2010
Messages : 867
Détails du profil
Informations personnelles :
Nom : Homme Boris Dessy
Localisation : Belgique

Informations professionnelles :
Activité : sans emploi

Informations forums :
Inscription : décembre 2010
Messages : 867
Points : 1 374
Points : 1 374
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.
Willpower est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/08/2011, 10h03   #20
Invité de passage
 
Homme
Étudiant
Inscription : mars 2011
Messages : 13
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : mars 2011
Messages : 13
Points : 0
Points : 0
Merci encore une fois votre aide est génial !!!!
fullscream est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 10h11.


 
 
 
 
Partenaires

Hébergement Web