我在html中有一个div,看起来像

<div class="newfield col-sm-4">
            <h2>42</h2>
            <h3>Appending above</h3>
</div>


D3(v4)中的代码看起来像

var word = "somestring";
d3.select('.newfield')
.append("h2")
.html(word.join('<br/>'));


我希望D3文本“ somestring替换原始HTML中的'42'。

所以最终结果看起来像

<div class="newfield col-sm-4">
            <h2>somestring</h2>
            <h3>Appending above</h3>
</div>


我当前的D3代码未在屏幕上添加任何内容。
我的脚本按此顺序导入

<script src="http://d3js.org/d3.v4.min.js"></script>
<script src="http://d3js.org/queue.v1.min.js"></script>
<script src="http://d3js.org/topojson.v1.min.js"></script>
<script src="js/customd3.js"></script>
<script src="https://code.jquery.com/jquery-3.3.1.slim.min.js" integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" crossorigin="anonymous"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/js/bootstrap.min.js" integrity="sha384-ChfqqxuZUCnJSK3+MXmPNIyE6ZbWh2IMqE241rYiqJxyMiZ6OW/JmZQ5stwEULTy" crossorigin="anonymous"></script>

最佳答案

我将使用纯Javascript来完成这样的任务,而无需使用外部库。

但是,如果必须使用D3完成此操作:



d3.selectAll('.newfield h2')
  .text("somestring")
  //.append("br") //not really necessary!

<script src="https://d3js.org/d3.v5.min.js"></script>
<div class="newfield col-sm-4">
  <h2>42</h2>
  <h3>Appending above</h3>
</div>

10-06 12:42
查看更多