2013-01-08 3 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 등"

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 
    } 
} 

당신에게 '표준 네트워크 구문을 사용하여 링크를 가정

답변

0

, 다음을 수행 할 수 sensorList 변수에 쉼표와 공백을 추가하려고합니다. 약간 번거롭지만 .each() 메서드를 필터로 사용할 수 없으므로 필자가 생각해 볼 수있는 최선의 방법입니다.

+0

나를 위해 일하는 것 같지 않습니다. originalSensorID로 대체해야합니까? –

+0

"typeError : filteredLinks [x] .source는 정의되지 않았습니다."어떤 아이디어가 나옵니까? 사전에 감사드립니다 –

+0

for 루프가 객체를 반환하는지 테스트 할 수 있습니다 - 위에 추가했습니다. 하지만 D3 (노드 객체를 가리키는 "소스"및 "대상"속성을 가진 링크 객체의 배열이있는 표준 노드 - 링크 구문을 따르지 않는다면 작동하지 않습니다.) – Elijah

관련 문제