这有效:
// A
d3.select("body").selectAll(".testDiv")
.data(["div1", "div2", "div3"])
.enter().append("div")
.classed("testDiv", true)
.text(function(d) { return d; });
Run Code Online (Sandbox Code Playgroud)
以下片段是相同的,除了append的参数,而不是如上所述的"div",是一个函数(d),只返回"div":
// B
d3.select("body").selectAll(".testDiv")
.data(["div1", "div2", "div3"])
.enter().append(function(d) { return "div"; })
.classed("testDiv", true)
.text(function(d) { return d; });
Run Code Online (Sandbox Code Playgroud)
但是,B不起作用,而是在'Node'上返回错误消息"未捕获的TypeError:无法执行'appendChild':参数1不是'Node'类型."
"div"作为append()的参数function(d) { return "div"; }有何不同?