Я работаю над неориентированным графом в d3. Когда я нажимаю узел, я хочу отображать его данные в отдельном div (class: info) вне svg. Однако я не могу понять, как поместить данные из узла в div.Нажимайте, покажите другие данные в отдельном div в d3.js; Передача по значению
var node = svg.selectAll(".node")
.data(graph.nodes)
.enter().append("circle")
.attr("class", "node")
.attr("r", 5)
.style("fill", function(d) { return color(d.group); })
.call(force.drag)
.on("click", function(d){
d3.selectAll(".node").attr('r', 5)
.style("fill", function(d) { return color(d.group); })
.style("stroke","none");
d3.select(this).attr('r', 25)
.style("fill","lightcoral")
.style("stroke","red");
d3.select("#info").text(/* TEXT */);
});
Я пробовал:
- Я попытался
d3.select("#info").text(function(d){return d.text;});
. Однако, если я правильно понял,d
будет ссылаться на данные из текущего выбора. Таким образом, нет данных внутриd3.select("#info")
, так как текущий выбор - это div#info
. - Я также попытался получить привязку
function(d){return d.text;}
к переменной и передать эту переменную вtext()
. Однако Javascript не проходит по значению; это тот же сценарий, что и # 1.
Я читал о создании объекта только для текста. Кажется, я кое-что упустил. Есть ли элегантный способ показать данные с узла на div вне svg?
Похоже, это будет просто 'd3.select (" # info "). Text (d.text);' –