Подтвердить что ты не робот

D3.select по значению атрибута

Я новичок в d3. У меня есть что-то определенное:

node = node.enter().append("circle")
            .attr('id', function(d){ return d.id; })
            .attr("class", "node")
            .on('mouseover', mouseover_node)
            .on("click", nodeClick);

Теперь в функции nodeClick я хочу получить доступ к node (или кругу) со специальным идентификатором. Я ищу что-то, что я мог бы использовать так:

for(var i=0;i<maxId;i++) {
    d3.select(the node with id = i).do....

Кто-нибудь знает, как я могу это сделать?

4b9b3361

Ответ 1

Ваша проблема в том, что id и name должны начинаться с буквы. Поэтому измените свой код, чтобы добавить строку к каждому id, например.

.attr('id', function(d){ return 'name' + d.id; })

Затем вы можете выбрать данный node с помощью d3.select( '#name' + i ). Из документов на выбор D3:

... вы можете выбрать по тегу ( "div" ), классу ( ".awesome" ), уникальному идентификатор ( "#foo" ), атрибут ( "[color = красный]" ) или сдерживание ( "родительский ребенок" ).