JavaScript动态地使SVG无法工作,为什么?

JavaScript动态地使SVG无法工作,为什么?,javascript,jquery,svg,Javascript,Jquery,Svg,所以我写了一个简单的脚本,从输入中读取值,并使用它们动态构建条形图,但由于某种原因,该脚本无法工作“任何想法?” <figure id="fg1">      <input type="hidden" id="myText" value ="10 20 30 15 40 5" />      <figcaption ><br/>Activity Graph </figcaption >   </figure> <s

所以我写了一个简单的脚本,从输入中读取值,并使用它们动态构建条形图,但由于某种原因,该脚本无法工作“任何想法?”

 <figure id="fg1">
     <input type="hidden" id="myText" value ="10 20 30 15 40 5" />
     <figcaption ><br/>Activity Graph </figcaption >

  </figure>
<script>
    var str = document.getElementById("myText").value;
    var res = str.split(" ");
    var s = "<svg id="svg1">";
 for (i=0 ; i < res.length; i++) {
    var cx = i*20;
   s+="<rect class="hist" " +"x=""+cx+"+"width="20""+"height=""+res[i]*20+" style="fill:rgb(0,0,255);stroke-width:10;stroke:rgb(0,0,0)" />";

}
s+="</svg>";
$('s').appendTo("#fg1");

</script>

     

活动图    var str=document.getElementById(“myText”).value; var res=str.split(“”); var s=“”; 对于(i=0;is+=“不引用变量。这使其成为字符串,因此它在DOM中选择了一个
标记

$(s).appendTo("#fg1");

动态创建SVG元素时,应该使用
document.createElements(namespaceUri,elementName)
方法,因为它们不是HTML标记

例如,要创建
节点,应使用:

var el = document.createElementNS("http://www.w3.org/2000/svg" ,"rect"); 

然后,您可以使用
svg将其附加到svg中。appendChild(el)

您不能使用普通的jQuery创建svg元素。jQuery在默认(HTML)命名空间中创建元素。svg元素必须位于svg命名空间中。请尝试改用jQuery.svg插件


或者按照Andreas的建议,使用
CreateElements()
单独创建元素。

“不起作用”不是一个足够的问题描述。thaks对于回答,我更改了它,但它没有做任何事情。我尝试了下面的简单代码,但仍然没有……
Activity Graph var test=“”;$(测试).附于(“#fg1”);