Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/svg/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何迭代组';s snap.svg中的元素/子元素?_Javascript_Svg_Snap.svg - Fatal编程技术网

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>*”)用于直系子女