使用d3附加<br/>

时间:2014-07-15 19:20:42

标签: dom d3.js

我正在使用d3创建一系列radioboxes。我希望他们各自独立,所以我想在每一个之后放一个<br>标签。基本上,我正在寻找可以产生这个代码的代码:

<label> <input type="checkbox" value=""> some text </label> <br>

这是我的代码: function addradiobox() { d3.select(container) //container is the div element where the boxes will go .append("label") //label for radiobox .text(text) .append("input") //radiobox .attr("type","checkbox") .attr("value", "") .style("float","left") //move box left of label .append("br"); }

除了没有<br>标签之外,它的输出是我想要的,所以当我第二次调用该函数时,第二个radiobox与第一个放在同一行。

1 个答案:

答案 0 :(得分:2)

您要将<br>附加到<input>元素,该元素不能包含子元素。每次使用.append()时,都会返回附加元素的选择。在您的情况下,您使用.append('input'),然后尝试.append('br')输入,如下所示:

<label>
  <input type="checkbox" value="" style="float: left;">
    <br>
  </input>
  some text
</label>

这没有意义。

您可以在追加br之前重新选择容器,然后将其添加为标签的兄弟:

d3.select(container)
  .append('label')
  .text(text)
  .append('input')
    .attr('type', 'checkbox')
    .attr('value', '')
    .style('float', 'left');
d3.select(container)
  .append('br');

这应该为您提供您希望的输出。