【问题标题】:Creating a dropdown/select list from csv with d3 nest使用 d3 嵌套从 csv 创建下拉/选择列表
【发布时间】:2015-10-13 09:03:30
【问题描述】:

我希望从.csv 文件创建一个dropdown/select list。是否可以从d3 nest 创建一个dropdown/select 列表?我正在研究从.csv 文件填充的力导向图。我希望用户能够从下拉列表中选择要突出显示的节点。以前我使用基于文本的搜索并且它有效,但我实际上正在寻找dropdown list 而不是基于文本的搜索。提前谢谢!

可以参考this link

var nodesmap = d3.nest()
    .key(function (d) { return d.name; })
    .rollup(function (d) { return { "name": d[0].name, "group": d[0].group, "size": d[0].size  }; })
    .map(graph.nodes);    

var output = document.createElement('block_container');
var select = d3.select("#searchName").append("select");

list.selectAll("option")
            .data(nodesmap)
            .enter()
            .append("option")
            .attr("value", function(d) {return d.key;})
            .text(function(d) {
                return d.key; });

return output;

我用les_mis.csv

P.s:我什至不确定我是否正确设置了jsfiddle。原谅我的菜鸟。

【问题讨论】:

    标签: javascript jquery csv d3.js drop-down-menu


    【解决方案1】:

    首先,我认为您在变量名称为select 时输入了list。其次,您的nodesmap 对象没有.key 的属性。

    这会起作用:

      var select = d3.select("#searchName")
        .append("select")
        .on('change', searchNode); //<-- fire your search function on change
    
      select.selectAll("option")
        .data(graph.nodes) //<-- use graph.nodes
        .enter()
        .append("option")
        .attr("value", function(d) {return d.name;}) //<-- it has a name property
        .text(function(d) {
            return d.name; 
        });
    
     function searchNode() {
    
      //find the node
      var selectedVal = this.options[this.selectedIndex].value; //<-- get value from dropdown
    
      ...
    

    完整的工作代码here

    【讨论】:

    • 感谢您的友好回复。我会试一试,让你知道任何更新。真的很感激能在这件事上得到帮助..
    • 这非常有效。谢谢马克!你的解释非常好,直截了当。您发现使用“graph.nodes”而不是“nodesmap”。最初我使用的是“graph.nodes”,但不知何故或者更确切地说它不起作用,然后我因为沮丧而开始漫无目的地爆炸。我通过“this.options[this.selectedIndex].value”学到了一些新东西。我以前没有遇到过这种情况,因为我实际上已经离开“编码/编程”大约 10 年了。无论如何,真的很感激!
    猜你喜欢
    • 1970-01-01
    • 2013-01-14
    • 1970-01-01
    • 1970-01-01
    • 2021-04-25
    • 1970-01-01
    • 1970-01-01
    • 2014-08-26
    相关资源
    最近更新 更多