2016-03-28 9 views
0

ilişkilendirmek, o zaman D3 seçimi gibiD3 Erişim dizisi Ben</p> <pre><code>"nodes":[ {"id":"0", "name":"A", "isListedIn":["USSDN","Canadian list"] }, </code></pre> <p>Normalde sahip kuvvet düzeni için benim verilerde

d3.select(body).selectAll(".node").data(graph.nodes).enter() 
    .append("image") 
    .attr("name") function(d) return d.name) 
    .attr("isListedIn",function(d) return d.isListedIn) 

onu bağlamak istiyorum Bunu yapmak için, ancak d.isListedIn çalışmıyor. Yapmaya çalıştığım şey, kullanıcı 1 düğüme tıkladığında -> isListedIn değerini bir dizi olarak alabilirim. Bunu nasıl başarabilirim?

+2

bu garip bir koddur d3.select (body) .data (graph.nodes) .enter() .attr ("name") işlevi (d) return d.name) 'herhangi bir şeyi eklemiyorsunuz . Kuvvet grafiğinin çalışıp çalışmadığını merak ediyorum. Çalışan bir keman gönderebilir misin? – Cyril

+0

Evet, kodda hatalar vardı. Şimdi düzenleyeyim. Ama mesele d.isListedIn –

+1

içinde iç içe diziye nasıl erişileceğini bilmiyorum Açıkçası bu d işlevi 'isListedIn' olup olmadığını kontrol etmek için konsola gelebilecek fonksiyonun içinde olmalıdır. isListedIn ", function (d) {console.log (d); d.isListedIn döndürür)} – Cyril

cevap

1

Tam olarak ne elde etmeye çalışıyorsunuz?

D3 zaten sizin için yaptığınız gibi, daha sonra almak için isListedIn listesini düğümlerinize depolamak için bir özellik eklemenin bir anlamı yoktur. Bir DOM öğesi için veri almak istiyorsanız, ne yapmak istediğinize bağlı olarak d3.select('#el').data()[0]['isListedIn'] veya d3.select('#el').each(function(d) { console.log(d.isListedIn); });'u kullanabilirsiniz.

İlgili konular