jquery创建的svg rect不会出现

时间:2012-12-05 20:58:55

标签: jquery svg

我正在尝试使用jQuery和NO OTHER LIBRARIES创建一个SVG条形图,但是当我创建我的矩形时,它们不会显示在浏览器中,尽管键入html的相同内容会显示出来。

var data = [4, 8, 15, 16, 23, 42];
var chart = jQuery("#chart");
jQuery.each(data, function(index, value) {
    var bar = jQuery("<rect/>");
    chart.append(bar);
    bar.attr("y", index * 20)
        .attr("width", value * 10)
        .attr("height", 20);
});

和html:

<svg id="chart" class="chart" width=420 height=120 style="display: block;">
    <rect y="0" width="40" height="20"></rect> <!--added to test-->
</svg>

输入的rect标签显示得很好,使用Chrome中的开发者工具,它看起来与我的代码生成的第一个相同,但生成的代码不会显示。

2 个答案:

答案 0 :(得分:7)

$(document).ready(function() {
    var data = [4, 8, 15, 16, 23, 42];
    var chart = jQuery("#chart2");
    jQuery.each(data, function(index, value) {
        var bar = $(document.createElementNS("http://www.w3.org/2000/svg", "rect")).attr({
            x: 0,
            y: index * 20,
            width: value * 10,
            height: 20,
            stroke: "red",
            fill: "white"
        });
        chart.append(bar);
    });
});​

http://jsfiddle.net/26ybf/

编辑:显然你可以删除笔触和填充属性,我只是在那里确保它正常工作。干杯!

答案 1 :(得分:1)

尝试刷新元素:

jQuery.each(data, function(index, value) {
    ...
}    
chart.html(function(){return this.innerHTML});

SEE jsFiddle