1

我正在尝试使用 jQuery 而不是其他库创建一个 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 中的开发人员工具,它看起来与我的代码生成的第一个相同,但生成的代码不会显示。

4

2 回答 2

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/

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

于 2012-12-05T21:08:27.063 回答
1

尝试刷新您的元素:

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

见 jsFiddle

于 2012-12-05T21:06:58.750 回答