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;i s+=“不引用变量。这使其成为字符串,因此它在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”);