我正在使用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与第一个放在同一行。
答案 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');
这应该为您提供您希望的输出。