Javascript D3选择有效,而svg选择无效
我有 后来我Javascript D3选择有效,而svg选择无效,javascript,html,svg,d3.js,Javascript,Html,Svg,D3.js,我有 后来我 var svg = d3.select(.....) .append("svg") .attr("width", 1500) .attr("height", 850); 在匿名函数中,我更改了一些svg内容的样式。 但是我试着去做 svg.SelectAll(......) . . .on("mouseover", function(){ d3.select(this).st
var svg = d3.select(.....)
.append("svg")
.attr("width", 1500)
.attr("height", 850);
在匿名函数中,我更改了一些svg内容的样式。
但是我试着去做
svg.SelectAll(......)
.
.
.on("mouseover", function(){
d3.select(this).style(.....
}
而不是
svg.select(this).style....
然后它就坏了
为什么必须使用d3而不是svg?d3.select接受两种类型的参数—选择器字符串和DOM元素。selection.select svg.select在您的案例中只接受选择器字符串。您正在传入一个DOM元素,该元素会破坏代码,并相应地收到一条错误消息。您的问题标题具有误导性。d3是d3库的对象,而svg只是由您显示的代码创建的一些变量。现在,我可以猜测,但最好告诉我们,当您尝试调用svg元素的select方法时,它到底是如何损坏的……有任何错误吗?我当然为此道歉。我理解d3对象和svg变量之间的区别。我想我的问题是,既然我的svg组件在svg上,为什么我需要使用d3对象来更改我的svg组件的属性?谢谢Lars的回答。明白了。非常感谢你!更准确地说,selection.select接受选择器字符串以及返回元素的函数。这两种方法的主要区别在于,d3.selectnode将返回一个包含一个节点的选择,而selection.selectnode将返回selection的子选择,并保留其初始分组。@altocumulus不确定从何处获得该结果;这对我不起作用。医生告诉我;-这是返回thisnode的匿名函数的范围问题。在函数内部,该函数指向窗口。这可以很容易地通过关闭来解决。看我的。哦,当然,你是对的。谢谢你的加入!
d3.select(this).style....