2013-01-08 101 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

相關問題