2013-11-02 27 views
2

有誰知道jQuery運算符/方法的d3.js等價物(或接近等價物)的完整列表嗎?尋找相當於jQuery運算符的d3.js的列表

(這有點兒吸加載的jQuery比能夠做出一個調用,例如$('#frobozz').height(),當我已經有d3.js周圍其他沒有其他用途。)

回答

2

嚴格來說,沒有這樣一個列表,因爲d3並沒有通過設計提供任何這樣的功能。但是,現在大多數瀏覽器都是開始以符合W3C standard,您不需要jQuery某些函數。

你可以通過調用selection.node()獲得訪問DOMElement,然後你可以使用現有的DOM API的元素,也可以使用selection.style直接獲得CSS性能。

但是,仍然有部分API沒有被某些瀏覽器所遵守,或者很難實現,並且jQuery將成爲使JavaScript程序成爲瀏覽器不可知和簡單的最佳方式。 jQuery.height函數,例如,is not trivial

您不需要jQuery的唯一情況就是簡單情況。說,你知道height是通過CSS明確設置的,那麼它可以獲得d3.select('#froboxx').node().style.heightd3.select('#froboxx').style('height')。或者如果它是其中height被設置爲屬性的元素(例如svgimg元件),那麼d3.select('#froboxx').attr('height')還將爲您計算的值。但是,當均設置爲時,precedence of style v/s attribute就會啓動並且該任務再次變爲非平凡。

一個妥協可能的,因爲jQuery的1.8是,你可以準備your own jQuery build這還不包括你不需要任何模塊。缺點是您必須將文件託管在您的服務器上。沿着這些線路的另一個替代方案是使用ZeptoJS

+0

+1照亮答案。謝謝! – kjo

0

有一定的這個不完整列表。然而,選擇器與jQuery非常相似,用替換爲d3.selectd3.selectAll。運營商如.height()將等同於.attr("height")

對於任何特定的情況,應該很容易找出用D3調用什麼,這樣就不必加載jQuery。畢竟,無論是哪種情況,您都可以訪問DOM元素。