javascript – 将DOM元素附加到D3

前端之家收集整理的这篇文章主要介绍了javascript – 将DOM元素附加到D3前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我使用D3来绘制SVG.我想要的是将DOM元素或 HTML附加到D3,如:
task.append(function(model){
//here return html or dom
};

文件说这是可能的,但不幸的是,我找不到任何例子,或发现了如何自己做这个.

解决方法

selection.append()函数接受两种类型之一:

>一个字符串,它是要创建的元素的名称,或
>执行的函数(应用于父级),并返回元素或HTML.

你的问题不是很具体,所以我会在这里做一个疯狂的猜测.

自定义创建的元素附加到d3选择

如果你创建了你的元素

var newElem = document.createElement(tagname);

要么

var newElem = document.createElementNS(d3.ns.prefix.svg,tagname);

并且您要将该新元素添加到您的d3选择,那么您可以使用此选项:

mySelection.node().appendChild(newElem)

这将基本上将新元素添加到您选择的第一个节点.要将元素从选择中添加到每个节点,您需要在mySelection上循环并在每个单个项目上调用node().

添加多个自定义创建的元素的工作方式相同,但您可以使用element.cloneNode(true)保存自己的一些工作.

请注意,除了将它们包装在d3.select(elem)中,您不能在普通元素上使用任何d3的魔法.

将d3选项添加到d3选择

我们假设你有两个选择s1和s2,你希望s2被附加到s1.如果两者都只分别选择一个元素,那么可以简单地使用

s1.node().appendChild(s2.node())

如果s1和/或s2是多个元素的选择,则需要首先迭代这两个选择,并使用s1 [i] .node().append(s2 [j] .node()).

猜你在找的JavaScript相关文章