首先表示没见过g标签
然后数组调用貌似是allGroups[j]这样。
 不需要item。

解决方案 »

  1.   

    这个g标签是svg文件里的。我现在做的就是用javascript给svg文件加上一些效果。数组的allGroups[j]我知道,但是用item不是同样的意思吗?
      

  2.   

    我换用allGroups[j]试了一下,也是一样的效果。我现在是怀疑我那句var singleGroup=allGroups.item(j);赋值的方法不正确,因为这样输出的话,它只会输出循环的第一个值,也就是allGroups[0],而不会继续再循环。
      

  3.   

    直接alert singleGroup看看是个什么东西?
      

  4.   

    groupLength = singleGroup.childNodes.length;
    你怎么就知道 singleGroup.childNodes 的成员个数一定大于等于 17 呢?
    小于17个不行吗?
      

  5.   

    那你有没有试下
    var singleGroup=allGroups.item(j);
    var groupLength=singleGroup.childNodes.length;
    当j=0时groupLength的值,
    看你代码,当groupLength!=17 && groupLength!=5时,直接就return了,那你可以看到j等于几的时候触发过return。
      

  6.   


    是一个object svg g element,像这样
      

  7.   

    singleGroup在这里是指每一个G标签。我看了一下整个svg文档,G标签的子节点数数目有三种情况。一:5个,二:17个,三:13个。还有两个特殊的,一个是3个子节点,另外一个是包裹整个图形的G标签,共有181个子节点。
      

  8.   

    j=0时,就是第一个g标签,alert出来的结果是3,是特殊情况中的一种。