Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/10.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
D3.js 使用div和属性更新d3js_D3.js - Fatal编程技术网

D3.js 使用div和属性更新d3js

D3.js 使用div和属性更新d3js,d3.js,D3.js,我正在努力更新d3js。如果未注释,下面的代码不会更新值-实际上,初始布局将消失。 我还不知道。我只想更新价格。 任何帮助都将不胜感激 更新 有人(匿名)更新了-所以我正在调查这个 我已经清理了我的原始版本,但仍然没有正确更新 function update(data) { console.log("update " + data); var quotes = d3.select("#quoteContainer") .selectAll("div")

我正在努力更新d3js。如果未注释,下面的代码不会更新值-实际上,初始布局将消失。 我还不知道。我只想更新价格。 任何帮助都将不胜感激

更新

有人(匿名)更新了-所以我正在调查这个

我已经清理了我的原始版本,但仍然没有正确更新

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();
}