有谁知道 jQuery 运算符/方法的 d3.js 等价物(或接近等价物)的完整列表?
(除了能够拨打一个电话之外,加载 jQuery 有点糟糕,例如$('#frobozz').height()
,当我已经有的d3.js
时候。)
严格来说,没有这样的列表,因为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
被设置为属性(例如svg
或img
元素)的元素,那么d3.select('#froboxx').attr('height')
也会为您计算值。但是,当两者都设置时,样式 v/s 属性的优先级开始起作用,并且任务再次变得不平凡。
自 jQuery 1.8 以来可能的一种折衷方案是您可以准备自己的jQuery
构建,其中不包含您不需要的任何模块。缺点是您必须在服务器上托管文件。沿着这些思路的另一个替代方法是使用ZeptoJS
.
当然没有完整的清单。然而,选择器与 jQuery 非常相似,只是$
替换为d3.select
or d3.selectAll
。运算符如.height()
将等效于.attr("height")
.
对于任何特定情况,应该很容易弄清楚用 D3 调用什么,这样您就不必加载 jQuery。毕竟,无论哪种情况,您都在访问 DOM 元素。