Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/367.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript D3:如何通过D3中的内部html从同一类的多个div中选择div?_Javascript_Html_Css_D3.js - Fatal编程技术网

Javascript D3:如何通过D3中的内部html从同一类的多个div中选择div?

Javascript D3:如何通过D3中的内部html从同一类的多个div中选择div?,javascript,html,css,d3.js,Javascript,Html,Css,D3.js,我已经画了一系列的div,看起来像是从D3开始的按钮,如下所示 我用了这个密码 var years = [1975, 1976,...... ,2016] var buttons = d3.select("body") .append("div") .attr("class", "years_buttons") .selectAll("div")

我已经画了一系列的div,看起来像是从D3开始的按钮,如下所示

我用了这个密码

var years = [1975, 1976,...... ,2016]
var buttons = d3.select("body")
                    .append("div")
                    .attr("class", "years_buttons")
                    .selectAll("div")
                    .data(years)
                    .enter()
                    .append("div")
                    .text(function(d) {
                        return d;
                    });
我想要实现的是选择任何按钮,而不单击“仅通过代码”,使用年份名称作为唯一值来更改按钮的样式。我尝试了以下代码,但没有成功

d3.select(".years_buttons")
  .selectAll("div")
  .filter(function(d){return d.innerText == '2002'})
  .attr('color','white')
在这方面,任何人都能帮我吗,提前谢谢你

在你的过滤函数中,d指的是数据,而不是元素。另外,.attr'color',white'将指定color=white作为元素属性,而不是样式。你要找的是风格。要正确过滤,在原始渲染中,可以将数据指定为id和文本,然后使用该id选择目标元素:

风险值年数=[1975、1976、2016] var按钮=d3.selectbody .appenddiv .attr类,年份按钮 .selectAlldiv .数据年 进来 .appenddiv .attr'id',函数d{ 返回'id'+d; } .textfunctiond{ 返回d; }; d3.选择“id1975” .样式“颜色”、“白色”
尽管样式正确,但不需要在此处添加ID,只需使用基准: