【发布时间】:2019-03-20 17:10:58
【问题描述】:
试图将一个 div 从 chart_div 移动到 movehere div。
我可以将它复制到当前 svg 之下(注释代码)。 我也可以克隆它,但没有简单的方法专门针对标题行。该 svg 中的“g”元素。
html
<script type="text/javascript" src="https://www.gstatic.com/charts/loader.js"></script><div id="movehere"><div id="chart_div"></div></div>
javascript
function afterDraw() {
var g = document.getElementsByTagName("svg")[0].getElementsByTagName("g")[1];
document.getElementsByTagName("svg")[0].parentNode.style.top = '40px';
document.getElementsByTagName("svg")[0].style.overflow = 'visible';
var height = Number(g.getElementsByTagName("text")[0].getAttribute('y')) + 15;
g.setAttribute('transform','translate(0,-'+height+')');
g.setAttribute('transform','translate(0,-'+height+')');
//var NewG=g.cloneNode(true)
// var move="translate("+0+","+50+")"
// NewG.setAttributeNS(null,"transform",move)
// g.appendChild(NewG)
$('#chart_div svg').clone().appendTo($('#movehere'))
g = null;
}
这是一个例子: https://codepen.io/anon/pen/jJzxzj
谢谢!
【问题讨论】:
-
请添加您的 HTML 代码
-
当我取消注释
//$('.chart-div svg').clone()…时,一切似乎都在工作。 -
@AndyHoffman 我不知道您的建议是如何工作的,因为该行中使用了错误的选择器。
$('.chart-div svg').clone().appendTo($('.movehere'));应该是$('#chart_div svg').clone().appendTo($('#movehere'));选择器应该定位 ID#而不是 Class.和chart-div应该是chart_div -
@AndyHoffman 感谢您指出这一点。我已经尝试了一些东西并忘记更新它。所以克隆有点工作。除了我不能只针对标题行。目前整个 svg 都被克隆了。
-
@NewToJs 感谢您的建议。是的,但是我如何定位该 svg(标题行)中的特定“g”元素?
标签: javascript jquery html css svg