如何测量 D3.JS 节点属性的长度

How to measure the length of a D3.JS node's attribute

我在 D3.JS 中创建了多个路径,在鼠标悬停时我调用此鼠标悬停函数来获取该路径的属性并将它们存储在变量中。然后我尝试测量级别属性的长度并 console.log 它,但是我收到错误消息:

我还想使用 .slice(-1,1) 方法获取该值属性中的最后一个数字,但这也不起作用。 我认为该属性需要作为字符串读取才能执行这些操作。但是当我在 circleLevel 上调用 .toString() 时,我仍然收到此错误。

这里是鼠标悬停功能:

 function mouseover(){
var circleName = d3.select(this).attr("name");
var circleSize = d3.select(this).attr("size");
var circleLevel = d3.select(this).attr("level");
var levelLength = circleLevel.length();
console.log(circleLevel.length());

}

在 JS 上 fiddle: http://jsfiddle.net/RL_NewtoJS/ryyt6ruj/3/

在JavaScript中,string length是prop,不是method。所以

circleLevel.length()

应该是

circleLevel.length

错误是因为它试图调用 length,数字,作为一个函数:5() // invalid

关于获取最后一个字符,要么使用

circleLevel.charAt(circleLevel.length - 1)

circleLevel.substr(circleLevel.length - n) // to get last n characters