J'ai le code SVG suivant dans une page XHTMLComment accéder aux sous-éléments d'un tag <svg:use> depuis javascript?
<svg:svg>
<svg:svg width="450" heigth="450" viewBox="0 0 500 500">
<svg:defs>
<svg:g id='mygroup'>
<svg:circle id='a' cx="15" cy="15" r='15' fill="green" fill-opacity="0.3"/>
<svg:line id='b' x1="15" y1="15" x2="15" y2="0" style="stroke: black;" />
</svg:g>
</svg:defs>
<svg:rect width="400" height="400" fill="white" stroke="black" />
<svg:use id="g1" xlink:href="#mygroup" x="100" y="100" onclick="moveMe()" />
<svg:use id="g2" xlink:href="#mygroup" x="100" y="200" />
</svg:svg>
et je voudrais modifier le suivant code javascript
<script><![CDATA[
function moveMe(){
obj = document.getElementById("g1");
obj.setAttributeNS(null, "x", "200"); //Ok it works
//How can I change the color of the a circle in g1?
obj = document.getElementById("g1.a");
obj.setAttributeNS(null, "fill", "red"); //It doesn't work
}
]]></script>
Comment puis-je changer la couleur du « un » cercle dans 'g1'? Comment puis-je y accéder à partir de mon code javascript?
EDIT: Si j'ai un deuxième élément de groupe appelé g2, je ne veux pas changer sa couleur.
Je ne suis pas un expert en svg mais de l'apparence des choses, votre JavaScript manipule le DOM, qui est la forme non expansé, donc pas, vous pouvez Ne changez pas de groupe et demandez-le à g1 mais pas à g2. Vous devrez créer une copie de mygroup, et joindre g1 à une copie et g2 à l'autre. Ensuite, vous pouvez les manipuler indépendamment. – Alohci