删除节点时更新索引

时间:2015-12-11 23:27:35

标签: javascript d3.js

我可以通过鼠标点击突出显示多个节点。我有一个按钮,当按下时,删除所有突出显示的节点。现在这很好用。就在我再次强调它们的时候。

突出显示的工作原理是获取刚刚单击的节点的索引。但删除后似乎索引没有改变。

我找到了这个例子:D3 update on node removal always remove the last entry in SVG DOM

但它似乎无法解决我的问题:(

基本上我要求的是当我删除节点时,如何更新索引?

1 个答案:

答案 0 :(得分:0)

解决了它。基本上我的问题是,当我splicing数据时,我正在迭代变化长度的数组,因此i不在正确的位置。所以当拼接数组时,我在循环中递减i。类似的东西:

 for(i=0;i<nodeData.length;i++){
      if(nodeData[i].name === 'thisTest')
      {
        nodeData.splice(i--,1); 
      }
    }

这会删除nodeData[i],但会同时递减i,因此它位于数组中的正确索引处:)