2015-07-11 118 views
0

我想,我正在爲一個非常具體的需求而努力。我畫一個樹形結構,使用該節點配置:D3選擇基於文本,但需要兄弟元素

<g class="node" transform="translate(160.65,400)"> 
    <circle r="10" style="fill: rgb(255,255,255);"></circle> 
    <text y="18" dy=".35em" text-anchor="middle" style="fill-opacity: 1;">data</text> 
</g> 

我想要做的是選擇基於從文本標籤的數據了一圈。

我一直在閱讀D3中的子過濾器和過濾器,但我是新手,並沒有完全理解它。任何幫助,將不勝感激!

感謝

回答

0

您有2個選項,選擇文本標籤。

  1. 由父節點類選擇:

    var textTag = d3.select(".node text").text(); 
    if (textTag == "data") { 
        var circleTag = d3.select(".node circle"); 
        console.log(circleTag); 
    } else { 
        console.log("Not find"); 
    } 
    
  2. 選擇按標籤:

    var textTag = d3.select("text").text(); 
    if (textTag == "data") { 
        var circleTag = d3.select("circle"); 
        console.log(circleTag); 
    } else { 
        console.log("Not find"); 
    } 
    

    完整的jsfiddle here

+0

完美!這麼簡單,這只是表明我需要更多練習JS和D3。謝謝。 –

+0

[This](https://github.com/mbostock/d3/wiki/Selections)博客可以幫助您瞭解更多關於D3js中選擇方法的信息。 – Gabriel