如何使用d3.select()从d3获得等效的“this”关键字?

时间:2016-09-20 14:41:14

标签: javascript d3.js

我有一个d3元素,它调用一个名为tick的函数。

      g.append("g")
     .attr("clip-path", 'url(' + $location.path() + '#clip)' )
     .append("path")
     .datum(data)
     .attr("class", "line")
     .transition()
      .duration(500)
      .ease(d3.easeLinear)
      .on("start", tick);

在功能勾选中,如果我console.log(this),我会将以下内容打印到控制台

<path class="line"></path>

但是,如果我console.log(d3.select("line")),我会得到一个巨大的对象,我无法操纵this关键字。选择元素并返回d3的等价物的等效this方法是什么?

1 个答案:

答案 0 :(得分:1)

等同于&#34;是:

console.log(d3.select("line").node())

鉴于这个简单的片段:

<svg width="100" height="100">
    <circle cx="40" cy="40" r="20" fill="teal"></circle>
</svg>

var circle = d3.select("circle");
console.log(circle.node());
console.log(circle);

console.log(circle.node())为您提供:

<circle cx="40" cy="40" r="20" fill="teal"></circle>

虽然console.log(circle)为您提供:

zi {_groups: Array[1], _parents: Array[1]}

注意:我在&#34;等效&#34;中加上引号因为this取决于许多事情。所以,这相当于您的具体问题。