我在D3.JS中有几条路径,在鼠标悬停时我称之为鼠标悬停功能,以获取该路径的属性并将它们存储在变量中。然后我尝试测量level属性的长度和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());
}
答案 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