2

d3 でいくつかのボタンを作成したいと思います。コードをより明確にするために、それらの名前を配列に追加したいと思います。

次のコードがありますが、動作しません:

var buttonNames = ["button 1", "button 2", "button 3", "button 4"]

d3.select("body").selectAll("input").data(buttonNames).enter().append("input").attr("type","button").attr("class","button").attr("value", function d(){return d;} )

お返事ありがとうございます。

4

2 に答える 2

5

関数定義にタイプミスがあります。

.attr("value", function d(){return d;} )

する必要があります

.attr("value", function (d){return d;} )

dは関数の引数であり、括弧内にある必要があることに注意してください。

于 2013-03-06T10:12:53.190 に答える
4

これは、複数のボタンを作成する方法です。

    d3.select("#some_id")
      .append("div")
      .attr("class","some_other_id")
      .each(function(d) {

    for (var i = 1; i < number_to_duplicate; i++) {
        d3.select("#some_other_id")
          .append("button")
          .attr("type","button")
          .attr("class","btn-btn")
          .attr("id",function(d) { return 'button '+i;})
          .append("div")
          .attr("class","label")
          .text(function(d) { return 'button '+i;})

div と .each(function) を作成します。関数では、for ループがボタンを作成します。これにより、必要な数のボタン (number_to_duplicate) が得られ、それぞれに個別の ID が付けられます。もちろん、これを変更して、同じ属性または異なる属性を持つボタンをさらに作成し、それらを別の yet_another_id 要素に追加することができます。

必要に応じて、ループの外側でラベルを付けることができます。これは私の貧乏人の「ボタン工場」です。私が学ぶために、肯定的または否定的な批評をコメントしてください。

于 2015-07-07T20:03:04.413 に答える