Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/474.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 select()方法中的函数_Javascript_Html_Select_D3.js - Fatal编程技术网

Javascript select()方法中的函数

Javascript select()方法中的函数,javascript,html,select,d3.js,Javascript,Html,Select,D3.js,在这个项目中,我正在制作一个交互式元素周期表,它基于一个csv文件。我创建了一个g组,并为每个化学元素提供了一个id。例如: <g id="element1" xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://en.wikipedia.org/wiki/Hydrogen"><rect x="0" y="0" rx="4" ry="4" id="Nonmetal" class="xpos bordered"

在这个项目中,我正在制作一个交互式元素周期表,它基于一个csv文件。我创建了一个g组,并为每个化学元素提供了一个id。例如:

<g id="element1" xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://en.wikipedia.org/wiki/Hydrogen"><rect x="0" y="0" rx="4" ry="4" id="Nonmetal" class="xpos bordered" width="51" height="61" style="fill: rgb(255, 215, 0);"></rect></g>
您希望文本与您的rect一起出现在g中。此外,还应定位g,然后相对于g定位元素。大概是这样的:

var g = cards.enter()
  .append('g')
  .attr("id",function(d) {return "element"+(d.AtomicNumber)})
  .attr("transform", function(d){
    var x = (d.DisplayColumn - 1) * (gridSize + espacecases),
        y = (d.DisplayRow - 1) * (gridSize + 10 + espacecases);
    return "translate(" + x + "," + y + ")";
  });

g.append("rect")
  .attr("width", gridSize) 
  .attr("height", gridSize+10);

g.append("text")
 .text(function(d){
   return (d.AtomicNumber);
 });

另一种方法是将代码块包装在cards.eachfunction d{…}中,然后使用d3.selectbody.selectelement+d.AtomicNumber或类似的方法。
var g = cards.enter()
  .append('g')
  .attr("id",function(d) {return "element"+(d.AtomicNumber)})
  .attr("transform", function(d){
    var x = (d.DisplayColumn - 1) * (gridSize + espacecases),
        y = (d.DisplayRow - 1) * (gridSize + 10 + espacecases);
    return "translate(" + x + "," + y + ")";
  });

g.append("rect")
  .attr("width", gridSize) 
  .attr("height", gridSize+10);

g.append("text")
 .text(function(d){
   return (d.AtomicNumber);
 });