D3.js 无法为元素赋予id属性
我用的是d3和拉斐尔。我的要求是创建一个x轴,然后在两端添加按钮。但是它不能给它id。有没有办法给id或使用元素。因为我很天真,所以我对它了解不多D3.js 无法为元素赋予id属性,d3.js,raphael,D3.js,Raphael,我用的是d3和拉斐尔。我的要求是创建一个x轴,然后在两端添加按钮。但是它不能给它id。有没有办法给id或使用元素。因为我很天真,所以我对它了解不多 var raphael = new Raphael(0, 0, "100%", "100%"); raphael.setStart(); d3_raphael = d3.raphael(raphael); svg = d3_raphael.select("body").append("svg:svg") .attr("width",svg
var raphael = new Raphael(0, 0, "100%", "100%");
raphael.setStart();
d3_raphael = d3.raphael(raphael);
svg = d3_raphael.select("body").append("svg:svg")
.attr("width",svg_w)
.attr("height",svg_h);
xAxis.scale(x)
svg.select("#x_axis")
.call(xAxis);
d3_raphael.call(xAxis);
svg.selectAll("#year_bar")
.data([0])
.enter()
.append("rect")
.attr("id", "year_bar")
.attr("x", 0)
.attr("y", 4)
.attr("width", 0)
.attr("height", 10);
svg.selectAll(".year_button")
.data([minYearFilter, maxYearFilter+1])
.enter()
.append("svg:path")
.attr("class", "year_button")
.attr("d", "M-7,4L-7,15L0,22L7,15L7,4L-7,4")
.attr("id", function(d, i) { return i == 0 ? "min_year" : "max_year"; })
.attr("selected", "false")
.attr("y", 4);
yearSetX(0, x(minYearFilter));
yearSetX(1, x(maxYearFilter+1));
function yearSetX(i, x) {
if (i == 0) {
barMinYearX = x;
debugger;
var btn = d3_raphael.selectAll("#min_year");
} else {
barMaxYearX = x;
var btn = d3_raphael.select("#max_year");
}
//btn.attr("transform", function(d) { return "translate(" + x + ",0)"; });
btn.attr("x",x);
btn.attr("y",0);
btn.attr("fill", "gray");
btn.attr("stroke","gray");
if ((barMinYearX != undefined) && (barMaxYearX != undefined)) {
d3_raphael.select("#year_bar")
.attr("x", barMinYearX+7)
.attr("width", (barMaxYearX - barMinYearX - 13));
}
}
如果您的评论是问题的一部分,请编辑问题并向其添加代码。@Mahm00d我已按您所说的做了。.您想在哪里添加id?你能创建一个JSFIDLE吗?@Neil在我的代码中,我创建了一个矩形,每个按钮都有一个年份按钮,我需要给每个按钮一个id才能访问它。正如你所看到的,我在yearSet函数中使用了这些ID。我认为你需要尝试将其放入JSFIDLE,以便有人能帮助你。