У меня есть несколько путей, которые я сделал в D3.JS, и при наведении мыши я вызываю эту функцию mouseover, чтобы получить атрибуты этого пути и сохранить их в переменных. Затем я пытаюсь измерить длину атрибута уровня и console.log, но Im получает ошибку: Как измерить длину атрибута узла D3.JS
Я также хотел бы использовать метод .slice (-1,1), чтобы получить последний фигура в этом атрибуте value, но это тоже не работает. Я думаю, что атрибут нужно читать как строку, чтобы делать это. но когда я вызываю .toString() на circleLevel, я все еще получаю эту ошибку.
здесь функция Mouseover:
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/
Было бы неплохо иметь скрипку, чтобы полностью ответить на вопрос, но для вашего первого пункта он пытается оценить функции 5, 3 и 5 как функции, которые должны сказать вам, что '.length' является свойством, не является функцией. 'circleLevel.length' (не вызывать его с помощью'() ') даст вам то, что вам нужно. – wrshawn
Вот скрипка: http://jsfiddle.net/RL_NewtoJS/ryyt6ruj/3/ – NewToJS
Я смущен о том, что вы подразумеваете под длиной. Вы прикрепляете свой собственный атрибут длины в формате «x-y-z», и кажется, что вы можете получить доступ к этому только штрафу. Попробуйте 'console.log (this.getTotalLength())' в обработчике mouseover. Это длина, на которую вы пытаетесь добраться? – wrshawn