gpt4 book ai didi

javascript - 根据表单输入过滤 d3 js 对象

转载 作者:行者123 更新时间:2023-11-28 10:56:15 25 4
gpt4 key购买 nike

我正在使用 d3js 来显示节点和边的网络。在可视化中,我添加了一个选项 [HTML 表单输入] 来搜索节点。输入可以是多个节点。

我很难使用过滤器功能过滤多个节点。我搜索了很多但没有发现类似的问题。相关代码如下:

$("#submit-search").submit(function(event) {
// values separated by commas
var ip = $("#search-nodes").val().split(',');
// converts to integers
for(var i=0; i<ip.length; i++) {ip[i] = parseInt(ip[i], 10);}
visualization.selectAll('circle')
.filter(function(d){
return ip.indexOf(d.name) != -1 ? d.name : false;
})
.style("stroke-width", 15)
.style("stroke-opacity", 0.75)
.style("fill", "black");
});

由于indexOf函数仅返回第一个命中,因此仅突出显示一个节点。我尝试使用 jQuery 的 grep 函数,但没有成功。

添加了可视化图像。由于我在本地使用 django 框架,因此它不公开。

编辑:包含 jsfiddle http://jsfiddle.net/ZqzbN/ [错误]

节点具有以下属性:度中心性、组、名称、介数中心性、度边具有属性:源节点、目标节点、组

最佳答案

我对 d3js 不熟悉,但我能想到的最简单的解决方案是将过滤器功能分离到可视化范围之外。我会推荐这样的东西。这只是伪代码:

var new_array;

for each node in ip:
insert node.name into new_array if node.name != -1
end

visualization.do_your_stuff_with(new_array);

关于javascript - 根据表单输入过滤 d3 js 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22070430/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com