Javascript d3.js下拉菜单-选择相关节点

Javascript d3.js下拉菜单-选择相关节点,javascript,d3.js,Javascript,D3.js,我有下面创建下拉列表的代码: var arrayOfGroups=[]; 函数makearray(){ 节点。每个(功能(d){ if(arrayOfGroups.indexOf(d.group)

我有下面创建下拉列表的代码:

var arrayOfGroups=[];
函数makearray(){
节点。每个(功能(d){
if(arrayOfGroups.indexOf(d.group)<0){
arrayOfGroups.push(d.group)
}
})
console.log(ArrayOfGroup)
返回ArrayOfGroup;
}
var newArray=makearray();
var container=document.getElementById('selectContainer')
var dropdown=createselectdropdown('thisDropdown',newArray);
dropdown.onchange=函数(事件){
console.log(事件)
node.style('stroke','white')
.样式(“笔划宽度”、“1px”);
节点过滤器(功能(d){
返回d.group==event.id;
})
.每个功能(d){
控制台日志(d)
console.log('d')
})
.style('笔划','红色')
.style('stroke-width','5px')
}
container.appendChild(下拉列表)
函数creatSelectDropDown(id,数组){
var dropdown=document.createElement(“选择”);
dropdown.id=id;
对于(var i=0;i

这段代码选择节点,问题是我希望这段代码选择与其ID相关的节点,这就是我无法让它工作的地方,它只有一个未定义的选项。我想让它显示一些其他选项,如map1、map2等,我有以下数据:

var thisData={
“节点”:[{
“id”:“C47676”,
“名称”:“名称1”,
“x”:1209,
“y”:41
}, {
“id”:“C58435”,
“名称”:“名称2”,
“x”:483,
“y”:227
}, {
.
.
.
}],
“链接”:[{
“id”:“K14724”,
“名称”:“名称3”,
“x1”:983,
“y1”:461,
“x2”:983,
“y2”:524,
“x3”:985,
“y3”:524,
“x4”:985,
“y4”:461
}, {
“id”:“K85944”,
“名称”:“名称4”,
“x1”:983,
“y1”:524,
“x2”:983,
“y2”:525,
“x3”:985,
“y3”:525,
“x4”:985,
“y4”:524
}, {
.
.
.

}]};用于ID,而不是此ID:

function makearray(){
  node.each(function(d){
    if(arrayOfGroups.indexOf(d.group) < 0){
      arrayOfGroups.push(d.group)
    }
  })
  console.log(arrayOfGroups)
  return arrayOfGroups;
}
这应该是:

return d.group == event.target.value; 
target.value是选项标记的值。因为这就是您想要做的,所以获取与您拾取的值具有相同ID的节点。不知道你为什么要改变这个。唯一应该更改的是要与哪个节点属性进行比较

因此,如果要比较ID,则应为:

return d.id == event.target.value;

至于map1,map2,我不知道你在这里说的是什么…

它突出显示了每个节点,而不是相关节点它怎么能??ID应该是唯一的。摆好小提琴,我给你看这正是我没有得到的,我也把ID改成了名字,不管我选哪一个它突出显示了所有的节点你在这两个方面都改了吗,当你制作数组和过滤时?我设法选择了与该ID相关的一个,但现在它所做的是选择该ID,并将其余的都变成黑色和1px
return d.group == event.target.value; 
return d.id == event.target.value;