D3.js 使用div和属性更新d3js
我正在努力更新d3js。如果未注释,下面的代码不会更新值-实际上,初始布局将消失。 我还不知道。我只想更新价格。 任何帮助都将不胜感激 更新 有人(匿名)更新了-所以我正在调查这个 我已经清理了我的原始版本,但仍然没有正确更新D3.js 使用div和属性更新d3js,d3.js,D3.js,我正在努力更新d3js。如果未注释,下面的代码不会更新值-实际上,初始布局将消失。 我还不知道。我只想更新价格。 任何帮助都将不胜感激 更新 有人(匿名)更新了-所以我正在调查这个 我已经清理了我的原始版本,但仍然没有正确更新 function update(data) { console.log("update " + data); var quotes = d3.select("#quoteContainer") .selectAll("div")
function update(data) {
console.log("update " + data);
var quotes = d3.select("#quoteContainer")
.selectAll("div")
.data(data);
// ENTER
var q = quotes.enter()
.append("div")
.attr("class", "quotePanel");
var m = q.append("div").attr("class", "carmodel");
var p = q.append("div").attr("class", "price");
var f1 = p.append("span").attr("class", "bigFigure");
var f2 = p.append("span").attr("class", "smallFigure");
f1.text(function (d) {
var priceStr = d["price"].toString();
var bigFigure = priceStr.substr(0, 4);
console.log("bigFigure: " + bigFigure);
return bigFigure;
});
f2.text(function (d) {
return "00";
});
quotes.select("div").text(function (d) {
var modelname = d["symbol"];
console.log("Setting model name " + modelname);
return modelname;
});
//quotes.exit().remove();
}
function onclick() {
update([{
"symbol": "BMW",
"price": 9000
}, {
"symbol": "PIGEOT",
"price": 124
}]);
};
d3.select('#update')
.on("click", onclick);
update([{
"symbol": "ASTON",
"price": 3000
}, {
"symbol": "MARTIN",
"price": 6500
}]);
谢谢你,伊戈尔。
解决办法是:
数据选择会处理数据的每个实例,因此您不需要每个实例;您只需在更新时分配属性。如果你加了一把木棍或小提琴,我们可以帮你。您可能需要再次查看d3.Hi的常规更新模式。谢谢我已经阅读并使用d3js进行了一些创建/更新,但这是我第一次尝试使用“复杂”属性/div进行创建/更新。。。模型名称。但在创作上,它很有效。
function update(data) {
var quotes = d3.select("#quoteContainer")
.selectAll(".quotePanel")
.data(data);
var q = quotes.enter()
.append("div")
.attr("class", "quotePanel");
var m = q.append("div").attr("class", "carmodel");
var p = q.append("div").attr("class", "price");
var f1 = p.append("span").attr("class", "bigFigure");
var f2 = p.append("span").attr("class", "smallFigure");
quotes.select(".carmodel").text(function (d) {
var modelname = d["symbol"];
return modelname;
});
quotes.select(".bigFigure").text(function (d) {
var priceStr = d["price"].toString();
var bigFigure = priceStr.substr(0, 4);
return bigFigure;
});
quotes.select(".smallFigure").text(function (d) {
return "00";
});
quotes.exit().remove();
}