如何在与其数据对应的位置插入enter()选择?

时间:2012-08-07 02:28:39

标签: javascript d3.js

假设我将数字列表绑定到“li”元素,使用数字本身作为键。所以,如果我从[1,2]开始,那么我得到:

  • 1
  • 2
  • 现在,如果我将该列表更新为[1,3,2],那么我希望HTML看起来像:

  • 1
  • 3
  • 2
  • 我不能为我的生活弄清楚如何做到这一点,因为如果我只是做一个enter()。append('li'),那么输入选择是3,所以HTML看起来像: / p>

  • 1
  • 2
  • 3
  • (选择也有insert(),但只接受常量值而不是回调。)

    2 个答案:

    答案 0 :(得分:1)

    我发现在更新后使用selection.order似乎有效,但它仍然不能完全满足,因为我想在插入时这样做。

    答案 1 :(得分:1)

    您还需要进行更新:

    var container = d3.select("ul");
    var selection = container.selectAll("li").data([1, 3, 2]);
    
    // Enter
    selection.enter().append("li");
    
    // Update
    selection.text(function(d) { return d; });