D3.js d3js高亮显示连接的节点

D3.js d3js高亮显示连接的节点,d3.js,D3.js,我想列出所有连接到我用鼠标在文本字段中滚动的节点的节点,我一直在尝试使用过滤功能,它可以满足我的需要,因为它会影响链接对象的笔划宽度,但我也想输出节点名称 .on("mouseover", function(da) { link.filter(function(db) { return da.group == db.groupColor; }) .transition() .style("stroke-width", 8); selectedText.text("Curre

我想列出所有连接到我用鼠标在文本字段中滚动的节点的节点,我一直在尝试使用过滤功能,它可以满足我的需要,因为它会影响链接对象的笔划宽度,但我也想输出节点名称

 .on("mouseover", function(da) {
  link.filter(function(db) { return da.group == db.groupColor; })
  .transition()
  .style("stroke-width", 8);  

 selectedText.text("Currently Selected: "+da.name+"is connecting to sensors: "+link.filter(function(db) { return da.group == db.groupColor; }) ); 
现在我得到一个输出“bike brian连接到传感器:[对象svgline元素]”


但我想要的是能够返回其他节点的所有名称。。。这有意义吗?因此,它可能会说“bike brian连接到传感器:加速计、gps等。”

假设您的链接使用标准网络语法,您可以执行以下操作:

var filteredLinks = link.filter(function(db) { return da.group == db.groupColor; });
var sensorList = '';
for (x in filteredLinks) {
    if (filteredLinks[x]) {
    filteredLinks[x].source.id == originalSensorID ? sensorList += filteredLinks[x].target.id : sensorList += filteredLinks[x].source.id
    }
}

您可能需要在sensorList变量中添加逗号和空格。这有点麻烦,但我无法使.each()方法与筛选器一起工作,因此这是我能想到的最好的方法。

它似乎不适合我,我应该用一些东西代替originalSensorID吗?我得到了“typeError:FilteredLink[x]。源代码未定义”知道为什么吗?提前感谢您可以测试以确保for循环返回一个对象——我在上面添加了它。但是,如果您没有遵循D3中的标准节点链接语法(D3中有一个链接对象数组,该数组具有指向节点对象的“源”和“目标”属性,那么这将不起作用。嗨,Elijah,再次感谢您帮助我完成此操作。.我遵循了节点/链接语法,但出现了以下错误“FilteredLink[x]。源未定义”