我在使用jQuery和D3js时遇到了问题。
我有一个名为" elem"的jQuery元素我想做一些D3js功能。
此代码有效:
d3.select("body").append("svg").attr("width", 300).attr("height", 300).append("g").attr("transform", "translate(150,150)").selectAll("text").data(words).enter().append("text")......
此代码不
elem.append("svg").attr("width", 300).attr("height", 300).append("g").attr("transform", "translate(150,150)").selectAll("text").data(words).enter().append("text")......
那么如何将jQuery对象转换为D3对象?
答案 0 :(得分:33)
您可以使用jquery对象上的.get()方法或数组表示法从jQuery对象中获取DOM元素,然后像使用任何DOM元素一样使用d3选择器选择它们。
请注意,虽然两者都有效,但jQuery faq mentions that array notation is faster.
d3.select($("#selection").get(0));
d3.select($("#selection")[0]); // equivalent to above but faster
编辑:感谢Ken Fox指出jQuery faq。
答案 1 :(得分:3)
您无法直接转换对象。您需要使用d3js
重新选择元素。 d3js
选择器就像这样工作
d3.select("#mydiv")
因此,只需从id
元素中提取jQuery
,就像这样
d3.select("#" + elem.attr("id")).append("svg").attr("width", 300)...
当然,如果您仅使用jQuery
选择元素,则应切换到d3js
选择。