2

有谁知道 jQuery 运算符/方法的 d3.js 等价物(或接近等价物)的完整列表?

(除了能够拨打一个电话之外,加载 jQuery 有点糟糕,例如$('#frobozz').height(),当我已经有的d3.js时候。)

4

2 回答 2

2

严格来说,没有这样的列表,因为d3设计上没有提供任何这样的功能。但是,现在大多数浏览器都开始符合W3C 标准,您不需要某些功能jQuery

您可以DOMElement通过调用selection.node()来访问,然后您可以使用元素上可用的 DOM API,也可以使用直接selection.style获取CSS属性。

然而,API 的某些部分仍然没有被某些浏览器遵守,或者难以实现,jQuery这将是使 Javascript 程序与浏览器无关且简单的最佳方式。jQuery.height例如,该函数并不平凡

唯一不需要jQuery的情况是简单的情况。比如说,你知道height是通过 CSS 显式设置的,那么它可以通过d3.select('#froboxx').node().style.height, 或来获得d3.select('#froboxx').style('height')。或者,如果它是一个height被设置为属性(例如svgimg元素)的元素,那么d3.select('#froboxx').attr('height')也会为您计算值。但是,当两者都设置时,样式 v/s 属性的优先级开始起作用,并且任务再次变得不平凡。

自 jQuery 1.8 以来可能的一种折衷方案是您可以准备自己的jQuery构建,其中不包含您不需要的任何模块。缺点是您必须在服务器上托管文件。沿着这些思路的另一个替代方法是使用ZeptoJS.

于 2013-11-02T23:29:30.343 回答
0

当然没有完整的清单。然而,选择器与 jQuery 非常相似,只是$替换为d3.selector d3.selectAll。运算符如.height()将等效于.attr("height").

对于任何特定情况,应该很容易弄清楚用 D3 调用什么,这样您就不必加载 jQuery。毕竟,无论哪种情况,您都在访问 DOM 元素。

于 2013-11-02T23:10:58.183 回答