Javascript 如何在html部分中使用声明的变量?

Javascript 如何在html部分中使用声明的变量?,javascript,d3.js,directed-graph,Javascript,D3.js,Directed Graph,我试图在D3中构建一个有向线图,能够使用D3中的线性比例,域[-1,0,1]和范围[“红色”、“黄色”、“绿色”],将边的颜色设置为节点之间速度的表示。我对D3、JS和编程都是新手,所以我确信我遗漏了一些明显的东西,但是有没有一种方法可以调用这个颜色数组中的值: var color = d3.scale.linear() .domain([-1, 0, 1]) .range(["red", "yellow", "green"]); 在我声明线条实际颜色的样式部分中?我尝试过的示例,其中我声明了

我试图在D3中构建一个有向线图,能够使用D3中的线性比例,域[-1,0,1]和范围[“红色”、“黄色”、“绿色”],将边的颜色设置为节点之间速度的表示。我对D3、JS和编程都是新手,所以我确信我遗漏了一些明显的东西,但是有没有一种方法可以调用这个颜色数组中的值:

var color = d3.scale.linear()
.domain([-1, 0, 1])
.range(["red", "yellow", "green"]);
在我声明线条实际颜色的样式部分中?我尝试过的示例,其中我声明了10种链接类型,并尝试将颜色元素传递给它们:

path.link.onezero {
    stroke: color(-0.5);
} 
不起作用,并返回一个空行。 path.link.twozero{ 行程:#000; } 不起作用,并返回一条黑线

显然,我可能是用错误的方式解决了这个问题,我希望能够创建这些行,而不必求助于样式部分中样式元素的离散声明,而是用一个样式元素和样式部分,并由我的脚本动态确定其属性——我只是不知道如何做到这一点


谢谢大家!

您必须在javascript代码中调用
color
函数,如下所示

d3.selectAll("path.link.onezero")
   .style("stroke",color(-0.5)); 

这里混合了CSS和Javascript。您需要在Javascript代码中调用
color()
。例如,请参见感谢您的评论。我会仔细研究,看看是否能有所改进。谢谢你的回答!我将其插入到代码中,出于某种原因,它没有修改path.link.onezero元素以获取该颜色值。我试着使用.style(“stroke”,color(-0.5));同样,也没用。问题出在选择器上。更新了答案。现在试试。你不需要额外的过滤器,只需执行d3.selectAll(“path.link.onezero”)。出于某种原因,它仍然没有将笔划数据放入样式元素中。如果我将整个元素置零,并在样式部分声明它:path.link.onezero{},那么即使我在JS中正确地选择了它,它也不会返回任何行,正如您向我演示的那样,并将颜色声明为颜色数组的元素或特定颜色(例如,#F00或“red”).检查此项并确认您的path元素具有您在fiddle中提到的两个类。