Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/471.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 使用d3js为节点指定多个文本_Javascript_Html_D3.js_Svg - Fatal编程技术网

Javascript 使用d3js为节点指定多个文本

Javascript 使用d3js为节点指定多个文本,javascript,html,d3.js,svg,Javascript,Html,D3.js,Svg,大家好,我正在尝试向D3SVG节点添加多个文本元素。但是,对于以下代码,将显示节点的所有第一个文本指定,但不会显示第二个文本元素。我的方法正确吗?还是有一只虫子我不见了 var node = svg.selectAll("g.node") .data(nodes, function(d) { return d.id || (d.id = ++i); }); // Enter any new nodes at the parent's previous position. var no

大家好,我正在尝试向D3SVG节点添加多个文本元素。但是,对于以下代码,将显示节点的所有第一个文本指定,但不会显示第二个文本元素。我的方法正确吗?还是有一只虫子我不见了

 var node = svg.selectAll("g.node")
  .data(nodes, function(d) { return d.id || (d.id = ++i); });

 // Enter any new nodes at the parent's previous position.
 var nodeEnter = node.enter().append("g")
  .attr("class", "node")
  .attr("transform", function(d) { return "translate(" + source.y0 + "," + source.x0 + ")"; })
  .on("click", click);

nodeEnter.append("circle")
  .attr("r", 1e-6)
  .style("fill", function(d) { return d._children ? "lightsteelblue" : "#fff"; });
  // .on("mouseenter",setdatavis)
  // .on("mouseleave",setdatainvis);

nodeEnter.append("text")
  // .attr("x",0)
  // .attr("y",0)
  // .append("tspan")
  .attr("x", function(d) { return d.children || d._children ? -10 : 10; })
  .attr("y",-10)
  .attr("dy", ".35em")
  .attr("text-anchor", "end")
  .text(function(d) { return d.name; })
  .style("fill-opacity", 1e-6)
  .style("visibility","visible");
  // .on("mouseenter", function(){d3.select(this)
  //   .style("visibility", "hidden")
  //   .transition()                      
  //   ;})
  // .on("mouseleave", function(){d3.select(this)
  //   .style("visibility", "visible")
  //   .transition()                      
  //   ;});

nodeEnter.append("text")
  .attr("x",10)
  .attr("text-anchor","start")
  .attr("y",10)
  .attr("dy",".35em")
  .text(function(d){return "hi";})
  .style("visibility","visible")
  .style("fill-opacity",1e-6);

看起来应该有用。你能提供一个完整的例子来重现这个问题吗?这里是一个代码共享和所有的信息。中间有一个巨大的json,它保存了我在执行这个图形生成时使用的数据结构,您将不透明度设置为1e-6,而不是将其转换为1。它就在那里,只是看不见而已。您可能需要
nodeUpdate。选择all(“text”)
转换为不透明1.TY!!!成功了!你知道有没有办法让我在底部设置的可见性处理程序只让第二组文本可见/不可见。就像我可以为第二组文本分配id一样是的,你可以分配id或类。