Jquery 如何在svg D3中添加追加顺序

Jquery 如何在svg D3中添加追加顺序,jquery,d3.js,svg,jquery-svg,Jquery,D3.js,Svg,Jquery Svg,我用的是d3图表 var svg = container.append('svg') .attr("width", width + margin.right + margin.left) .attr("height", height + margin.top + margin.bottom) .on("click", hideDiv).append('g') .attr("transform", "translate(" + mar

我用的是d3图表

var svg = container.append('svg')
        .attr("width", width + margin.right + margin.left)
        .attr("height", height + margin.top + margin.bottom)
        .on("click", hideDiv).append('g')
        .attr("transform", "translate(" + margin.left + "," + margin.top + ")");
    d3.select("svg").append("rect").attr("width", '100%').attr("height", '100%').attr("fill", "#FFFFFF");
这是我的密码。在图表中运行此代码时,该代码不在绘图中。但在控制台中,当在g之前移动“rect”时,图表将绘制。 在控制台中,在移动rect之前,代码将

<svg width="2200" height="2690"><g transform="translate(120,20)">
<g class="node" transform="translate(180,1421.327880859375)"></g>3
<rect width="100%" height="100%" fill="#FFFFFF"></rect>

3.

但是在移动rect之后

<svg width="2200" height="2690">
<rect width="100%" height="100%" fill="#FFFFFF"></rect>
<g transform="translate(120,20)"></g>


我想要这样。请帮帮我。我受够了

您的D3代码对我有效,您正在使用#FFFFFF(白色)填充您的rect,如果您没有填充容器,那么它将默认为白色,并且rect不会显示,请尝试使用其他颜色 这同样适用于两个svg元素,如果更改颜色,它们都将显示

另外请注意,您已经创建了一个svg变量,因此无需再次选择它来追加rect,直接追加:

svg.append("rect")...
下面是一个正在运行的JSFIDLE演示,rect设置为黄色:

.attr("fill", "#FFFF00");

您可以使用insert、end和选择器代替append,以选择要添加的元素insert@HuguesStefanski我想要这样。。若发生这种情况,图形将绘制,否则不会绘制。尝试类似d3.select(“svg”).insert(“rect”,“g”).attr(“width”,“100%”).attr(“height”,“100%”).attr(“fill”,“FFFFFF”)@HuguesStefanski它不起作用。。我要做的是你可以设置一个JSFIDLE或plnkr来简化这个过程吗?这将使检查你的代码更容易我得到像这样3这里图表不是绘图。当我在控制台中重新排列代码时,就像图表没有问题一样。我是如何做到的?我更新了JSFIDLE以包含svg元素,您有拼写错误,为什么在第一个中有3到3个?。你也没有在最后结束。这两个SVG元素在JSFIDLE中都显示得很好,请看一看,当我运行代码时,我得到了这个,而运行这个时,我没有得到图表。但当移动到as s第二条线时,图表将绘制。ie这两个元素之间的唯一区别是,在第二个元素中,您将其移出元素,因此变换(平移)将不会应用于它。如果您转换的值大于它的容器,那么它将超出边界并消失,但是您的高度/宽度足够大,所以这不应该是问题所在。是否包含在另一个容器中?现在我们需要看到更多的代码来帮助您,正如我所指出的,我的答案中的jsfiddle链接显示了与您完全相同的两个元素,我只是为了演示而更改了颜色。