我可以通过鼠标点击突出显示多个节点。我有一个按钮,当按下时,删除所有突出显示的节点。现在这很好用。就在我再次强调它们的时候。
突出显示的工作原理是获取刚刚单击的节点的索引。但删除后似乎索引没有改变。
我找到了这个例子:D3 update on node removal always remove the last entry in SVG DOM
但它似乎无法解决我的问题:(
基本上我要求的是当我删除节点时,如何更新索引?
答案 0 :(得分:0)
解决了它。基本上我的问题是,当我splicing
数据时,我正在迭代变化长度的数组,因此i
不在正确的位置。所以当拼接数组时,我在循环中递减i
。类似的东西:
for(i=0;i<nodeData.length;i++){
if(nodeData[i].name === 'thisTest')
{
nodeData.splice(i--,1);
}
}
这会删除nodeData[i]
,但会同时递减i
,因此它位于数组中的正确索引处:)