Javascript 更改内联SVG';带ecmascript的s x和y

Javascript 更改内联SVG';带ecmascript的s x和y,javascript,css,svg,Javascript,Css,Svg,我在SVG中使用内联SVG,并设置了一些默认的x和y值。当我更改它们时,内联SVG会相应地移动。我正试着改变它 var inlineSVG = document.getElementById("inlineSVG"); inlineSVG.style.x = "90"; 这就增加了style=“x:90px;”但实际上并不影响元素。 (在我的脑海中)这很奇怪,因为它适用于rect,但不适用于svg。 这是我的实际代码: <?xml version='1.0' encodi

我在SVG中使用内联SVG,并设置了一些默认的x和y值。当我更改它们时,内联SVG会相应地移动。我正试着改变它

    var inlineSVG = document.getElementById("inlineSVG");
    inlineSVG.style.x = "90";
这就增加了style=“x:90px;”但实际上并不影响元素。 (在我的脑海中)这很奇怪,因为它适用于rect,但不适用于svg。 这是我的实际代码:

<?xml version='1.0' encoding='UTF-8'?> 
<svg width='1000' height='360'
 xmlns='http://www.w3.org/2000/svg'
 xmlns:xlink="http://www.w3.org/1999/xlink"
 onload='init(evt)'
 > 

<script type='text/ecmascript'>
function init(event){
    var wing1 = document.getElementById("wing1");
    wing1.style.x = "90";
}
</script> 


<circle cx="200" cy="140" r="5" fill="red" />
<circle cx="220" cy="170" r="5" fill="red" />
<circle cx="180" cy="170" r="5" fill="red" />
<circle cx="220" cy="220" r="5" fill="red" />
<circle cx="180" cy="220" r="5" fill="red" />

<svg id="wing1" x="280" y="100" viewBox="0 0 350 300">
  <g>
    <g>
      <g>
        <ellipse fill="#E6E7E8" cx="229.505" cy="117.813" rx="5.862" ry="4.547"/>
      </g>
      <g>
        <ellipse fill="#E6E7E8" cx="265.931" cy="117.819" rx="5.862" ry="4.547"/>
      </g>
    </g>
    <g>
      <g>
        <ellipse fill="#E6E7E8" cx="229.191" cy="125.538" rx="5.862" ry="4.547"/>
      </g>
      <g>
        <ellipse fill="#E6E7E8" cx="265.617" cy="125.531" rx="5.861" ry="4.547"/>
      </g>
    </g>
  </g>
  <ellipse fill="#E6E7E8" cx="247.244" cy="121.796" rx="20.635" ry="38.017"/>      
</svg>

<rect id="square" x="0" y="470" width="50" height="50" fill="#BADA55" style="fill-opacity : 0.5" />

<line x1="0" y1="0" x2="1000" y2="360" style="stroke: yellowgreen;
                                                               stroke-width: 1;
                                                               stroke-dasharray: 10 1;"></line>
<line x1="0" y1="360" x2="1000" y2="0" style="stroke: yellowgreen;
                                                               stroke-width: 1;
                                                               stroke-dasharray: 10 1;"></line>

函数初始化(事件){
var wing1=document.getElementById(“wing1”);
wing1.style.x=“90”;
}

我尝试添加!对值很重要,但它不起作用(因为我猜它不算有效数字?)。 解决方案是直接更改x属性,如下所示:

selector.setAttribute("attr",val); 

在SVG x中,y不是CSS样式,而是属性。@RobertLongson我知道,但它在rect上起作用。奇怪的