Javascript 无法读取未定义的属性$
在g上调用此函数会生成一个无法读取的未定义错误属性'indexOf',在我尝试在此处添加标记为//的输入的行上。尽管我尽了最大努力,我还是找不到未定义的东西。我该如何解决这个问题 注意:它应该创建带有标签和存储函数的复选框 这是一个带有一点驱动程序代码的JSFIDLE 对不起,我刚发现一个不相关的错误。更新了代码Javascript 无法读取未定义的属性$,javascript,d3.js,Javascript,D3.js,在g上调用此函数会生成一个无法读取的未定义错误属性'indexOf',在我尝试在此处添加标记为//的输入的行上。尽管我尽了最大努力,我还是找不到未定义的东西。我该如何解决这个问题 注意:它应该创建带有标签和存储函数的复选框 这是一个带有一点驱动程序代码的JSFIDLE 对不起,我刚发现一个不相关的错误。更新了代码 function CheckBoxFilter() { var labels = []; var functions = []; var updateData; f
function CheckBoxFilter() {
var labels = [];
var functions = [];
var updateData;
function chart(selection) {
selection.each(function() {
var g = d3.select(this).append("g");
var checkboxes = g.selectAll("input")
.data(labels)
.enter()
.append() // HERE
.attr("class", "checkbox")
.attr("type", "checkbox")
.property("checked", true)
.text(function(d) {
return " " + d.name;
});
updateData = function() {
var update = checkboxes.data(data);
update.exit()
.remove();
update.enter()
.append("input")
.merge(update)
.attr("class", "checkbox")
.attr("type", "checkbox")
.text(function(d) {
return " " + d.name;
});
};
});
}
chart.data = function(value) {
if (!arguments.length) return labels;
labels = [];
functions = [];
var len = value.length;
for (var i=0; i<len; i++) {
labels.push(value[i].name);
functions.push(value[i].func);
}
if (typeof updateData == "function") updateData();
return chart;
};
return chart;
};
驱动程序代码
<html>
<head>
<script src="http://d3js.org/d3.v3.min.js" charset="utf-8"></script>
</head>
<body>
<script>
var svg = d3.select("body").append("svg");
var age_filter = CheckBoxFilter().data(age);
svg.call(age_filter);
</script>
</body>
</html>
.append需要CSS选择器作为参数。在这种情况下,必须告诉它追加输入:.appendinput。您可以发布此脚本附带的HTML吗?这是HTML。您没有向.append传递任何参数。您需要告诉它要追加什么:.appendinput。非常感谢。是的,很快我就发现了。
<html>
<head>
<script src="http://d3js.org/d3.v3.min.js" charset="utf-8"></script>
</head>
<body>
<script>
var svg = d3.select("body").append("svg");
var age_filter = CheckBoxFilter().data(age);
svg.call(age_filter);
</script>
</body>
</html>