データセットを使用して一連のラジオ ボタンを作成し、特定のボタンをデフォルトとしてマークしたいと考えています。2 つの問題があります。
まず、テキストはラジオ ボタンの左側に配置されますが、HTML では次のように右側に表示されるのが通例です。
<form><label><input type="radio"...> First label<input...></label>
入力タグを設定した後、ラベル コレクションで D3 を使用してラベル テキストを配置しようとしましたが、これは入力タグを上書きしているように見えます。
次に、デフォルトのボタンは、「checked」または「selected」という修飾されていない属性名だけで示されます。コードの最後の行でこれを試しましたが、うまくいかないようです。
これは現在のコードであり、関連する JSFiddleがあります。
var shapeData = ["Arrow", "Cross", "Hexagon", "Star", "Triangle"],
j = 3; // Choose the star as default
// Create the shape selectors
var form = d3.select("body").append("form");
labels = form.selectAll("label")
.data(shapeData)
.enter()
.append("label")
.text(function(d) {return d;})
.append("input")
.attr({
type: "radio",
class: "shape",
name: "mode",
value: function(d, i) {return i;}
})
.attr(function(d, i) {return i==j?"selected":null;});