2017-05-09 10 views
-1

このようにして作成されたsvgの属性の値を取得するにはどうすればよいですか?d3の指定ノード内からsvg要素を選択するにはどうすればよいですか?

// SVG setup 
var svg = d3.select(vizNode).append('svg') 
    .attr('width', width) 
    .attr('height', height) 
    .style('background', 'white') 
    .append('g') 
    .attr('transform', 'translate(' + width/2 + ',' + height/2 + ')'); 

// Text 
svg.append('text') 
    .datum(newValue) 
    .attr('class', 'meter-center-text') 
    .style('text-anchor', 'middle') 
    .style('fill', mainColor) 
    .text(function(d){ 
     return parseFloat(newValue); 
    }); 
console.log("Done update"); 

(私はそれをインクリメントするつもりだから)テキストからデータム値を戻したいと思っています。

私は少し

previousValue = d3.select(vizNode).select('svg').select('text').attr('darum'); 

のようなものを望んでいたと仮定が、それは何も返しません。実際に

previousValue = d3.select(vizNode).select('svg'); 

が返されますので、間違ったトラックに乗る必要があります。

答えて

1

データを返す関数はselection.datum()で、selection.attr('darum')ではありません。また、私はdarumが誤字であると仮定します。ここ

例:

https://jsfiddle.net/rovj8164/

var value = d3.select('div').select('svg').select('text').datum(); 
console.log(value) 
+0

ありがとう!ちょうど私がループの最初の反復でsvgがまだ存在しなかったことを思い出す前に、それがフィドルで働いたが、私のコードではうまくいかなかった理由を疑問に思った。それ以上の校長はいない:P – mazz0