【问题标题】:Change style of the element in the middle of an array更改数组中间元素的样式
【发布时间】:2017-12-03 15:52:50
【问题描述】:

我使用 D3.js,但遇到了另一个问题。 我得到了这个数组pat,它让我可以单击 2 个节点并将这些节点之间的最短路径存储在数组中。 现在,我创建了pat 的中间元素mid。我的目标是,改变这个元素的风格,让我们说成另一种颜色red。 但我正在努力寻找正确的解决方案。在这里你可以看到我的代码。怎么样,有人可以帮我找到解决方案。

var mid = null;

     node.on("click", function(d, i){
        var pat = start && start.pat(d) || []

        mid = pat[Math.floor((pat.length - 1) / 2)];

        node.style("fill", function(d) 
                        {
                          if (pat.includes(mid)){ return "red";}

                        });

【问题讨论】:

    标签: javascript arrays if-statement d3.js colors


    【解决方案1】:

    我不太清楚您的代码的作用,但这是我的建议。在创建元素/节点时,为它们分配一个 id:

    .attr('id', function(d){ return some.identifier }
    

    然后在您的点击函数中,您可以选择标识符等于mid 元素的节点。

    d3.select("#" + mid)
      .style("fill", "red")
    

    【讨论】:

    • 为什么投反对票?如果您有更好的答案,请随时发布。
    • 我刚刚为你投了赞成票。我不知道为什么有人反对它
    猜你喜欢
    • 2015-07-05
    • 1970-01-01
    • 1970-01-01
    • 2017-04-06
    • 2016-05-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多