2015-04-06 105 views
0

我想更改下图中所示子类的属性。更改D3中子类的属性

enter image description here

如何选择,在两种不同的情况具体对象?

1)当创建主类:

slider = svg.append("g") 
     .attr("class", "slider") 
     .attr("transform", "translate(" + slider_translate_width + "," + 0 + ")") 
     .attr("cursor", "default") 
     .call(brush); 

2)当使用svg.selectall("...")

+0

在这两种情况下,您都会调用'.attr(“width”,...)'。 – 2015-04-06 14:52:09

回答

1

在第一种情况中,可变slider是如右图所示,在屏幕截图中的<g class="slider">元件。通过简单地调用

var rect = slider.select('rect'); 
rect.attr('width', ...); 

/* Or, chaining */ 
slider.select('rect').attr('width', ...); 

您也可以使用CSS选择器选择元素和selectselectAll选择rect元素:

d3.selectAll('.slider > rect').attr('width', ...); 

一般来说,第二种方法是因为你遍历整个DOM,而不是第一种方法,其中只遍历<g class="slider">的同胞。