2015-03-02 3 views
0

У меня есть несколько путей, которые я сделал в D3.JS, и при наведении мыши я вызываю эту функцию mouseover, чтобы получить атрибуты этого пути и сохранить их в переменных. Затем я пытаюсь измерить длину атрибута уровня и console.log, но Im получает ошибку: enter image description hereКак измерить длину атрибута узла 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/

+1

Было бы неплохо иметь скрипку, чтобы полностью ответить на вопрос, но для вашего первого пункта он пытается оценить функции 5, 3 и 5 как функции, которые должны сказать вам, что '.length' является свойством, не является функцией. 'circleLevel.length' (не вызывать его с помощью'() ') даст вам то, что вам нужно. – wrshawn

+0

Вот скрипка: http://jsfiddle.net/RL_NewtoJS/ryyt6ruj/3/ – NewToJS

+0

Я смущен о том, что вы подразумеваете под длиной. Вы прикрепляете свой собственный атрибут длины в формате «x-y-z», и кажется, что вы можете получить доступ к этому только штрафу. Попробуйте 'console.log (this.getTotalLength())' в обработчике mouseover. Это длина, на которую вы пытаетесь добраться? – wrshawn

ответ

1

В JavaScript, длина строки является опорой, а не метод. Так

circleLevel.length() 

должен быть

circleLevel.length 

Ошибка в том, что он пытается вызвать length, число, как функция: 5() // invalid

Что касается получения последнего символа, либо использовать

circleLevel.charAt(circleLevel.length - 1) 

или

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