Javascript 如何迭代组';s snap.svg中的元素/子元素?
假设我有一个类型为Javascript 如何迭代组';s snap.svg中的元素/子元素?,javascript,svg,snap.svg,Javascript,Svg,Snap.svg,假设我有一个类型为的svg组,名为“group1”,它有许多子对象(其他形状等)。我想使用snap.svg对它们进行迭代 var group1 = s.select('#group1'); group1.forEach(function(child) { // doesn't work }); 有什么想法吗?您可以找到forEach的快照文档 首先,您需要使用s.selectAll而不是s.select here var set = s.selectAll Select将选择第一个
的svg组,名为“group1”,它有许多子对象(其他形状等)。我想使用snap.svg对它们进行迭代
var group1 = s.select('#group1');
group1.forEach(function(child) {
// doesn't work
});
有什么想法吗?您可以找到forEach的快照文档 首先,您需要使用s.selectAll而不是s.select here
var set = s.selectAll
Select将选择第一个元素,selectAll将选择与css选择器匹配的所有元素并将它们放在一个集合中,这样您就可以使用forEach了
然后您可以迭代它们,类似于您的示例。因此,我将使用“*”选择器来获取子对象
s.selectAll('#group1 *')
.forEach( function( el ) {
el.attr({ fill: 'blue' });
});
如果您不特别需要forEach,因为您只想为它们设置一些属性,那么可以避免使用forEach,因为有些方法可以应用于集合。所以上面的例子也可以写成
s.selectAll('#group1 *').attr({ fill: 'red' });
您可以找到forEach的快照文档 首先,您需要使用s.selectAll而不是s.select here
var set = s.selectAll
Select将选择第一个元素,selectAll将选择与css选择器匹配的所有元素并将它们放在一个集合中,这样您就可以使用forEach了
然后您可以迭代它们,类似于您的示例。因此,我将使用“*”选择器来获取子对象
s.selectAll('#group1 *')
.forEach( function( el ) {
el.attr({ fill: 'blue' });
});
如果您不特别需要forEach,因为您只想为它们设置一些属性,那么可以避免使用forEach,因为有些方法可以应用于集合。所以上面的例子也可以写成
s.selectAll('#group1 *').attr({ fill: 'red' });
self/others注意事项:s.selectAll(“#group>*”)用于直系子女self/others注意事项:s.selectAll(“#group>*”)用于直系子女