d3检索并添加到当前选择的属性值

ari*_*old 16 d3.js

我正在尝试获取元素翻译的值.

例如,如果我选择x轴:

d3.select('.x.axis').attr("transform")

然后我明白了

"translate(0,112)"

如何获得0112不解析正则表达式?

我正在尝试这样做,以便我可以添加到该值.在伪代码中:

d3.selectAll('.x.axis').attr('transform', 'translate('
        .attr('transform').match(/(\d+)(\.\d+)?/g)[0] // <-- clearly won't work
        + additional_value
        + ', 0)');
Run Code Online (Sandbox Code Playgroud)

Lar*_*off 34

D3 为此提供了正确的transform()功能:

var t = d3.transform(d3.select('.x.axis').attr("transform")),
    x = t.translate[0],
    y = t.translate[1];
Run Code Online (Sandbox Code Playgroud)

  • 仅适用于**v3**,而非d3.js v4 - https://github.com/d3/d3-3.x-api-reference/blob/master/API-Reference.md (13认同)
  • 对于d3.js v4,请参见以下答案:http://stackoverflow.com/a/38230545/1703772并直接发送transform属性。 (2认同)