有谁知道 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.selector d3.selectAll。运算符如.height()将等效于.attr("height").
对于任何特定情况,应该很容易弄清楚用 D3 调用什么,这样您就不必加载 jQuery。毕竟,无论哪种情况,您都在访问 DOM 元素。