我遗漏了关于d3选择的基本知识。使用basic d3 force layout example,我想选择一个特定的节点,比如说Myriel
并修复它。按照之前的提示,例如this和this,似乎myrielNode = d3.select(["name=Myriel"])
应该这样做,但不是吗?我也尝试过基于filter()
的策略,...我做错了什么,拜托?
答案 0 :(得分:1)
var myrielDomNode = d3.select('[name="Myriel"]');
var myrielDatum = myrielDomNode.datum();
myrielDatum.fixed = true;
这当然假设存在一个DOM节点,该节点具有属性name="Myriel"
并且绑定到数据,使得datum()
是由力布局控制的对象。
原来,name
不是DOM节点的属性,而是数据的属性。在这种情况下,找到Myriel
节点将成为数据阵列上的查找操作:通过过滤器:
myrielNode = nodes.filter(function(d) { return d.name == 'Myriel'; })[0]
答案 1 :(得分:0)
你可能想要
d3.select('[name="Myriell"]');