У меня есть массив var brands = ['Option1', 'Option2']
. Я хочу использовать D3 для вывода помечены радиокнопок следующим образом:D3: как создать элементы ввода, за которыми следует текст ярлыка?
<label>
<input type="radio" name="brand" value="Option1" checked="true"/> Option1
</label>
<label>
<input type="radio" name="brand" value="Option2" /> Option2
</label>
Это мой D3, но это не совсем рабочая:
var radios = d3.select('.panel.left').selectAll('input[name="brand"]').data(brands);
var labels = radios.enter()
.append("label")
.attr("for", function(d) { return d; })
.text(function(d) { return d; })
.append("input")
.attr("type", "radio")
.attr("name", "brand")
.attr("value", function(d) { return d; })
.attr('checked', function(d) { if (d === brands[0]) { return 'checked' }; });
d3.selectAll('input[name="brand"]').on('change', function() {
renderValues(this.value);
});
Это очень близко к работе, но он выдает это:
<label>
Option1 <input type="radio" name="brand" value="Option1" checked="true" />
</label>
<label>
Option2 <input type="radio" name="brand" value="Option2" />
</label>
Независимо от того, что я делаю, я не могу понять, как разместить текст после элемента <input>
. Что я должен делать по-другому?
Было бы неплохо, если бы мне не пришлось повторно выбирать элементы ввода, чтобы добавить слушателя в конце.
Вы видели [это учебник] (http://www.d3noob.org/2014/04/using-html-inputs-with-d3js .html)? –
Спасибо, но если я чего-то не хватает, упорядочение всех элементов ввода и метки в этом учебнике уже жестко закодировано в HTML. Я заинтересован в создании их для динамического списка. – Richard