d3.js - d3 无法创建引导卡

标签 d3.js

我希望 d3 在卡片列中创建卡片,但我的代码在刷新时只创建一张卡片。我的错误是什么?

var group = d3.select('.card-columns').append("div").attr("class", "card")
    var card = group.selectAll('.card')
    group.data(data).enter()
        .merge(card)
        .html(function (d) {
            return
            `<div class="card-body">
                <h5 class="card-title">${d.project}</div>
                    <p class="card-text">${d.description}</div>
                        <p class="card-text"><small class="text-muted">${d.status}</small></p>
</div>`
        });

最佳答案

您将 div 附加到 div 而不是附加到选择中,请看我的示例:

let rnd = a => Math.random().toString(36).substring(2);

var data = [1,2,3,4].map(d => ({
  project: rnd(),
  description: rnd(),
  status: rnd()
}));

d3.select('.card-columns')
    .selectAll('.card')
    .data(data)
    .enter()
    .append("div") // append div here
    .classed("card", true)
    .each(function(d) { // i dont know why, but html function does not helps, i used each over all nodes here
      d3.select(this).html(
        `<div class="card-body">
           <h5 class="card-title">${d.project}</div>
           <p class="card-text">${d.description}</div>
           <p class="card-text"><small class="text-muted">${d.status}</small></p>
        </div>`)
    });
.card {
  border: 1px solid;
  display: inline-block;
  margin: 5px;
  padding: 5px;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/d3/5.7.0/d3.min.js"></script>
<div class="card-columns"></div>

关于d3.js - d3 无法创建引导卡,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55651978/

相关文章:

javascript - d3 缩放 : prevent page zoom when using a touchscreen

javascript - 有没有一种简单的方法可以在 d3.csvParse 遇到空行时停止它?

javascript - Cal-HeatMap - 如何格式化 subDomainText 单元格中的日期和值

javascript - d3.json 方法不返回我的数据数组

javascript - 在同一元素上实现 shift click 和 click 功能

javascript - 如何在D3.js中平滑地绘制从起点到终点的路径

javascript - D3 + 带有 Albers USA 投影的传单

javascript - D3.js - exit() 部分不会删除所有数据

javascript - d3 Topojson 调试转换

javascript - 使用 d3.mouse 时出现 D3 Typescript 错误 : 'this' implicitly has type 'any' because it does not have a type annotation