2016-10-12 8 views
0

ユーザーのホバーが円グラフの場合に機能を実装しました。 barchartpieChartの値に従って変更します。ホバー上で値を取得<text></text> D3js内の要素

私がDOMElementのを使用してpieChartの中に属性としてパス要素である塗りつぶしの色値を取得することができています。しかし、pieChartによって生成されたテキスト要素にあるの値を取得できません。私はそれのためのDOMを使用することはできませんね。

にはどうすればJavaScriptを使用してテキスト要素またはd3JS

マイコード

var pieHover = function(d,i){ 

      var DOMelement = this; 
      var fill = DOMelement.getAttribute("fill"); 
      var countryName = DOMelement.getAttribute("Country"); 
      console.log("country :"+text); 
      console.log(fill); 
      chart1.colour(fill); 
      chart1.render(); 
     } 


pie1.pieOverCallback(pieHover); 

HTML要素からのデータにアクセスするための方法がどのようなものがあり内部の値を取得することができます?以下

PieChart with text elements

htmlファイルの階層的なレイアウトです。そして、私は<text>要素のデータにアクセスする必要があります。 html layout ご協力いただければ幸いです。

答えて

0

これは、生成されたHTML/SVGがどのように構造化されているかによって異なります。 <text><path>の子である場合、DOMelement.childNodesまたは同様の方法を使用して<text>を取得してから、子の.getAttribute("text")を使用することができます。そうでない場合は、<g>タグ内で<path><text>の両方をグループ化してみると、DOMelement.parentNodeを使用できます。

+0

こんにちは、スクリーンショットを追加しました。確認してください。私がアクセスしているのは、svg> g>のテキストです。そして私はDOMelement.g.getAttribute( "text")を試しました。運がない。 .getAttributeがテキスト要素のデータを取得する正しい方法であるかどうかはわかりません。 –

+0

''要素の追加レイヤー内でパス/テキストペアをグループ化することをお勧めします。現在、特定の ''に基づいて選択する「」を体系的に知る方法はありません。グループ化された要素が2つしかない場合は、唯一の兄弟要素を簡単に取得できます。 – anbnyc

関連する問題