【问题标题】:D3 create buttons from an array of string containing namesD3从包含名称的字符串数组创建按钮
【发布时间】:2013-02-21 01:22:16
【问题描述】:

我想在 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;} )

提前感谢您的回复。

【问题讨论】:

    标签: javascript arrays button d3.js selectall


    【解决方案1】:

    您的函数定义中有错字。

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

    应该是

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

    请注意,d 是函数的参数,必须在括号内。

    【讨论】:

      【解决方案2】:

      这就是我创建多个按钮的方式。

          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 元素。

      如果需要,标签可以在其他地方的循环之外完成。 这是我穷人的“纽扣工厂”。请发表评论,无论是正面的还是负面的 - 供我学习。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2022-07-25
        • 1970-01-01
        • 2021-06-30
        • 1970-01-01
        • 2018-11-20
        • 2014-05-02
        • 1970-01-01
        相关资源
        最近更新 更多