Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 用包含自定义HTML和ko绑定的foreignObject替换d3演示中的圆圈和文本_Javascript_Jquery_Html_Svg_D3.js - Fatal编程技术网

Javascript 用包含自定义HTML和ko绑定的foreignObject替换d3演示中的圆圈和文本

Javascript 用包含自定义HTML和ko绑定的foreignObject替换d3演示中的圆圈和文本,javascript,jquery,html,svg,d3.js,Javascript,Jquery,Html,Svg,D3.js,鉴于它是的精确副本,我想用包含一些自定义HTML的foreignObject元素替换SVG中的圆圈和文本元素 我可以使用以下代码手动添加一个: var newFO = document.createElementNS('http://www.w3.org/2000/svg', "foreignObject"); $('svg').append(newFO); $(newFO).append("<div class='test'>" + strNameVar + "</div&g

鉴于它是的精确副本,我想用包含一些自定义HTML的foreignObject元素替换SVG中的圆圈和文本元素

我可以使用以下代码手动添加一个:

var newFO = document.createElementNS('http://www.w3.org/2000/svg', "foreignObject");
$('svg').append(newFO);
$(newFO).append("<div class='test'>" + strNameVar + "</div>");
更新
是我见过的最接近的,但它将转换应用于div而不是父foreignObject。

您可以通过先添加
g
元素,然后再添加下面的
foreignObject
元素来实现这一点。像这样(轻微滥用选择器):

完整的例子

var text = svg.append("g").selectAll("text")
    .data(force.nodes())
    .enter().append("text")
    .attr("x", 8)
    .attr("y", ".31em")
    .text(function (d) { return d.name; });
var node = svg.selectAll("foreignObject")
    .data(force.nodes())
  .enter().append("g");
node.append("foreignObject")
    // etc