2013-01-08 152 views
0

我想列出连接到一个节点的所有节点,我在文本字段中使用鼠标滚动,试图使用过滤器功能,并且它做了我需要的功能,因为它会影响笔画宽度的链接对象,但我也想输出节点名称。d3js突出显示连接的节点

.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; })); 

现在我得到的输出“自行车布赖恩连接到传感器:[对象svgline元素]”

,但我想要的是能够返回其它节点的所有名称... 那有意义吗?因此,它可能会说“自行车布赖恩连接到传感器:加速计,GPS,等等......”

回答

0

假设你的链接使用标准网络语法,你可以做到以下几点:

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()方法与过滤器一起工作,所以这是我能想到的最好的方法。

+0

它似乎并没有为我工作,我应该替换originalSensorID的东西吗? –

+0

我得到“typeError:filteredLinks [x] .source是未定义的”任何想法为什么?在此先感谢 –

+0

您可以测试以确保for循环正在返回一个对象 - 我在上面添加它。但是,如果你没有遵循D3中的标准节点链接语法(它有一个链接对象的数组具有指向节点对象的“源”和“目标”属性,那么这将不起作用。 – Elijah

相关问题