d3.js相当于jQuery';让我们分开?
下面显示的d3.js相当于jQuery';让我们分开?,d3.js,D3.js,下面显示的move_to_last回调的净效果是使this成为其在DOM中所有同级中的最后一个(this预计是一个DOM元素)。它首先将this从DOM中分离出来,然后将其重新附加到其原始父级 function move_to_last () { var n = jQuery(this); n.parent().append(n.detach()); } 此函数的预期用途如下 jQuery(".someclass").each(move_to_last); 如何定义函数move_to
move_to_last
回调的净效果是使this
成为其在DOM中所有同级中的最后一个(this
预计是一个DOM元素)。它首先将this
从DOM中分离出来,然后将其重新附加到其原始父级
function move_to_last () {
var n = jQuery(this);
n.parent().append(n.detach());
}
此函数的预期用途如下
jQuery(".someclass").each(move_to_last);
如何定义函数move_to_last_d3
,使表达式
d3.selectAll(".someclass").each(move_to_last_d3);
将具有与上一个表达式相同的效果
我在
d3.js
中看到了一个append
方法,但我看不到类似于detach
的东西。因此,这个问题可以归结为d3.js与jQuery的detach
方法的等价物是什么。您应该能够在发布代码时运行代码。D3本身不提供此功能,但它与JQuery配合使用效果很好。您应该能够在发布代码时运行该代码。没有等效代码,但是您应该能够运行您发布的D3代码,并实现移动到最后一个
@LarsKotthoff:谢谢!(如果作为答案发布,我很乐意接受。)@Larskothoff如果您尝试在不使用数据函数的情况下重新绑定数据,则此方法存在问题(即DOM将与D3认为存在的内容不同步)。请参阅相关讨论并澄清最后的评论。D3不保存DOM的状态。它的匹配是无状态的。关键是,当使用默认的匹配函数(依赖于数组中的索引)时,在对DOM元素重新排序时,不同的数据元素将被匹配。没有等效的,但您应该能够运行您发布的D3代码,实现了move_to_last
@larskothoff:谢谢!(如果作为答案发布,我很乐意接受。)@Larskothoff如果您尝试在不使用数据函数的情况下重新绑定数据,则此方法存在问题(即DOM将与D3认为存在的内容不同步)。请参阅相关讨论并澄清最后的评论。D3不保存DOM的状态。它的匹配是无状态的。关键是,当使用默认匹配函数(依赖于数组中的索引)时,在对DOM元素重新排序时,将匹配不同的数据元素。