更改对象属性时丢失的字符

时间:2016-06-14 14:51:31

标签: javascript svg

我对javascript相对较新,我发现在我的程序中发生了一件非常奇怪的事情,可能是非常愚蠢的事情,但我无法弄清楚。

所以我的svg rect有一些属性:

var rectFiltres = 
groups.selectAll("rect")
.data(data)
.enter().append("rect")
.attr("class","rect")
.attr({
    x: function(d){return 0},
    y: function(d){return 0},
    width : function(d){return 0},
    height : function(d){return 10},
    id : function (d){d.config;}


})
.style("fill",function(d){return color(d.combi)})

在我的剧本中的某个时刻,我试图改变属性" id"多个" rect"在循环中:

    for (var i=0;i<(confiClick.length-1);i++){

            var rectTest = d3.select(rectFiltres[0][i]);

            console.log(confiClick[i])

            var configIdRect = confiClick[i];

            console.log(configIdRect)
            rectTest.transition()
            .duration(800).style("opacity", 0.5)
            .attr("height",10)
            .attr("width",10)
            .attr("x",function(d){return largeurBox + confiClick[i].textWidth('arial',12)-20;})
            .attr("y",function(d){return haut2 +20*(i+1)-39;})
            .attr("id",configIdRect)
            .style("fill",colorBoxSelect)
            .style("opacity",0.5)

            console.log(rectTest)
        }

几乎每次都工作得很好,除非有一次confiClick [0]中的0碰巧消失了:confiClick [0] =&#34; parc_client = TPH03&#34;存储在rect中作为&#34; parc_client = TPH3&#34;。 0已经消失了!!我不明白为什么。

Here is the log in firefox, for some reason I can't try on another browser (job related issues)

这只发生在循环的第一个元素中,并且仅针对字符串的值,这些值不能帮助我理解问题。 (如果此字符串位于循环中的第二个或第三个位置,则它可以正常工作)

我喜欢尝试你可能有的任何建议,因为我有点坚持那个:/

0 个答案:

没有答案