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

时间:2015-03-02 01:08:56

标签: javascript d3.js attributes

我在D3.JS中有几条路径,在鼠标悬停时我称之为鼠标悬停功能,以获取该路径的属性并将它们存储在变量中。然后我尝试测量level属性的长度和console.log它,但我得到一个错误: enter image description here

我还想使用.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小提琴:http://jsfiddle.net/RL_NewtoJS/ryyt6ruj/3/

1 个答案:

答案 0 :(得分:1)

在JavaScript中,字符串长度是prop,而不是方法。所以

circleLevel.length()

应该是

circleLevel.length

该错误是因为它尝试将length号码作为函数调用:5() // invalid

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

circleLevel.charAt(circleLevel.length - 1)

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