由于d3.select()方法不起作用,我无法转换到工作状态。我通过使用document.getElementId()找到了一种解决方法,并通过手动更改所选DOM元素的属性来应用更改。一切都在浏览器中显示得很好,所以我去控制台做了一些调查。
我在控制台中找到的是当我输入
时 package sorts;
public class SortableArray<T extends Comparable<T>> {
T[] GenList;
public SortableArray(T[] theList) {
GenList = theList;
}
public SortableArray(int[] theList) {
Integer[] temp = new Integer[theList.length];
for(int i = 0; i < theList.length; i++) {
temp[i] = new Integer(theList[i]);
}
GenList = (T[]) temp; //warning here
}
}
它按预期返回DOM元素,但是当我使用
时document.getElementId("elementId")
或
d3.select("#elementId")
它返回以下对象:
d3.select("elementId")
有更多了解这个的人可以解释发生了什么以及如何让d3.select返回实际的DOM对象吗?
答案 0 :(得分:6)
d3.select("#elementId")
返回 D3选择(由于D3 v4.x是对象而不是数组),而不是DOM元素。这是预期的行为。
要获取实际的DOM元素,请使用方法node()
:
d3.select("#elementId").node();
这是一个演示:
var node = d3.select("#foo").node();
var selection = d3.select("#foo");
console.log("node: ", node)
console.log("selection: ", selection)
&#13;
<script src="https://d3js.org/d3.v4.min.js"></script>
<p id="foo">This is a paragraph</p>
&#13;