Nous utilisons des cookies pour vous garantir la meilleure expérience sur notre site. Si vous continuez à utiliser ce dernier, nous considèrerons que vous acceptez l'utilisation des cookies. J'ai compris ! ou En savoir plus !.
banniere

Le portail francophone de la géomatique


Toujours pas inscrit ? Mot de passe oublié ?
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

Annonce

Rencontres QGIS 2025

L'appel à participation est ouvert jusqu'au 19 janvier 2025!

#1 Mon 23 January 2006 15:22

raphaelgeo
Participant actif
Date d'inscription: 14 Dec 2005
Messages: 78

svg tag <g> recenser

voila j'ai un tage <G> regroupant deux figures comme suit  :





Code:

    
<g id = "ensemble1" onclick='alert("eeeeeeeee"); zoomer(500)'>



<circle id="lecercle" onclick = 'changebackgroundcolor(evt,"lecercle")' cx="10" cy="20" r="10" fill="red " stroke="blue" stroke-width="5" />


<circle id="zzzzzezezez"  onclick = 'changebackgroundcolordandg()' cx="1000" cy="20" r="10" fill="red " stroke="blue" stroke-width="5" />
</g>

je voudrais savoir comment faire pour atteindre les figures dans un <g> en javascript.
j'ai essayé le code qui suit mais ça n'a pas l'air d'atteindre les element de mon <g> nommé "ensemble1".


voila donc en fait je voudrais utiliser l'equivalent du for each de VB en javascript :

for each machin in tag<g>...


Code:

function changebackgroundcolordandg(){


    svgdoc1 = lacarte.getSVGDocument();

    

    var root = svgdoc1.getElementById("image").getElementById("ensemble1");


    alert(root);




    for(var i in root){

        alert(root[i].id);
        
        

        


    }

d'avance merci

Hors ligne

 

#2 Mon 23 January 2006 15:52

alex
Participant actif
Lieu: le puy en velay
Date d'inscription: 15 Nov 2005
Messages: 125
Site web

Re: svg tag <g> recenser

salut,

est tu sur de cette ligne ?

var root = svgdoc1.getElementById("image").getElementById("ensemble")

cordialement,
alex

Dernière modification par alex (Mon 23 January 2006 15:52)


J'arrête le combat pour le SVG !! et je ne fais plus que de l'information.
SVG : Scalable Vector Graphic ou comment mettre de la vie sur votre site Internet.
www.ode43.fr

Hors ligne

 

#3 Tue 24 January 2006 14:56

raphaelgeo
Participant actif
Date d'inscription: 14 Dec 2005
Messages: 78

Re: svg tag <g> recenser

a vrai dire non

je pense que comme ca la variable "root" va simplement se contenter de stocker les collections d'objets allant du svgdoc au tag <g>

mais j'ai besoin de rentrer directement dans le tag <G>


et si je fais :

var root = svgdoc.getElementById("ensemble1") ça marche pas.

en fait la collection d'objets renvoit les composants de l'interface mais pas les figures composant le <g>.


en fait je crois qu'il faut aller chercher directement l'info au niveau de la structure xml avec les childnodes...

cordialement.

Dernière modification par raphaelgeo (Tue 24 January 2006 16:16)

Hors ligne

 

#4 Tue 24 January 2006 16:33

alex
Participant actif
Lieu: le puy en velay
Date d'inscription: 15 Nov 2005
Messages: 125
Site web

Re: svg tag <g> recenser

si tu veux on continue sur l'autre forum !! www.SVGfr.org, ca évitera de faire doublon !

a+

alex ou dariuspol !!

Dernière modification par alex (Tue 24 January 2006 16:34)


J'arrête le combat pour le SVG !! et je ne fais plus que de l'information.
SVG : Scalable Vector Graphic ou comment mettre de la vie sur votre site Internet.
www.ode43.fr

Hors ligne

 

#5 Wed 25 January 2006 10:13

raphaelgeo
Participant actif
Date d'inscription: 14 Dec 2005
Messages: 78

Re: svg tag <g> recenser

c'est bon voila le code finalisé  :


Code:

function changebackgroundcolordandg(){
    
    var i = 0 ;

    svgdoc2 = lacarte.getSVGDocument();

    var root2 = svgdoc2.getElementById("ensemble1");

    ttnoeuds = root2.getChildNodes() ;

    var j = ttnoeuds.length;
    
    var variable1;

    for(i=1;i<j;i++){
           variable1 = ttnoeuds.item(i).id;

        /*  alert(ttnoeuds.item(i).nodeName);  */

        if(variable1 != null){

            svgdoc2.getElementById(variable1).setAttribute("fill", "salmon" )  
            
        }


    }

}

cordialement

Hors ligne

 

Pied de page des forums

Powered by FluxBB