参考这个例子:
http://vallandingham.me/stepper_steps.html
看起来D3和jQuery库在某种意义上非常相似,它们都以对象链接的方式进行DOM操作。
我很想知道D3比jQuery更容易实现哪些函数,反之亦然。有很多以jQuery为基础的图形和可视化类库(例如,highcharts,flot,wijmo)。
请具体举例说明它们的不同之处。
发布于 2013-04-30 09:49:09
data()
、enter()
和exit()
方法以及D3操作元素来提供数据和回调。下面的代码是一个使用D3的示例,这在jQuery中是不可能的(在jsfiddle中尝试):
// create selection
var selection = d3.select('body').selectAll('div');
// create binding between selection and data
var binding = selection.data([50, 100, 150]);
// update existing nodes
binding
.style('width', function(d) { return d + 'px'; });
// create nodes for new data
binding.enter()
.append('div')
.style('width', function(d) { return d + 'px'; });
// remove nodes for discarded data
binding.exit()
.remove();
发布于 2012-11-02 07:39:20
d3有一个愚蠢的描述。jQuery和d3一点也不相似,只是你不能用它们做同样的事情。
jQuery的目的是做一般的dom操作。它是一个通用的javascript工具包,可以做任何你想做的事情。
d3的主要设计目的是使使用数据创建闪亮的图形变得容易。如果你想做数据的图形化可视化,你绝对应该使用它(或者类似的东西,或者构建在它上面的东西)。
如果您想要一个通用的JS库来满足您的所有交互表单需求,请考虑使用jQuery或proto或mootools。如果你想要一些小东西,考虑一下underscore.js。如果你想要具有依赖注入和可测试性的东西,可以考虑AngularJS。
来自维基百科的General comparison指南。
我能理解为什么有人会认为他们很相似。它们使用类似的选择器语法-- $(‘选择器’),而d3是一个非常强大的工具,用于选择、过滤和操作html元素,特别是在将这些操作链接在一起的时候。d3试图在其主页上向您解释这一点,声称自己是一个通用库,但事实是,大多数人在想要制作图形时都会使用它。在一般的dom操作中使用它是非常不寻常的,因为d3的学习曲线是如此陡峭。然而,它是一个比jQuery更通用的工具,通常人们在d3之上构建其他更具体的库(如nvd3),而不是直接使用它。
@JohnS的回答也很好。Fluent API =方法链接。我也同意插件和扩展将引导你使用这些库。
发布于 2013-08-17 07:26:41
我最近使用了这两种方法的一小部分。因为d3使用的是Sizzle的选择器,所以你很可能会混淆选择器。
请记住,d3.select('#mydiv')返回的结果与jQuery('#mydiv')并不完全相同。它是相同的DOM元素,但使用不同的构造函数进行实例化。例如,假设您有以下元素:
<div id="mydiv" rel="awesome div" data-hash="654687867asaj"/>
让我们来获取一些常见的方法:
> d3.select('#mydiv').attr('rel') ;
"awesome div"
> jQuery('#mydiv').attr('rel');
"awesome div"
看起来是合法的。但是如果你走得更远一点:
> d3.select('#mydiv').data();
[undefined]
> jQuery('#mydiv').data();
Object {hash: "654687867asaj"}
https://stackoverflow.com/questions/13187112
复制相似问题