2012-11-08 41 views
0

我有一个对象,只是我需要收集和存储对象,其中包含标签作为链接到一个新的数组..可以任何一个给我最好的方式来做到这一点?jquery如何收集来自对象的所有链接值?

myobeject:

  var xploreMaps = { 
      radious:55, 
      stroke:5,strokeColor:'#fff', 
      opacity:0.8,fontSize:13,line:10, 
      cRtext:{ 
       length:4, 
       lineColor:'#7d2c2c', 
       prop:{ 
        0:{link:'motionGraphics.html',color:'#595959',text:'Motion Graphics'}, 
        1:{link:'video.html',color:'#306465',text:'Video'}, 
        2:{link:'photography.html',color:'#7e6931',text:'Photography'}, 
        3:{link:'copyRight.html',color:'#4c4966',text:'Copywriting'} 
        } 
      }, 
      cBtext:{ 
       length:3, 
       lineColor:'#4c839d', 
       prop:{ 
        0:{link:'imagination.html',color:'#595959',text:'Imagination'}, 
        1:{link:'innovation.html',color:'#306465',text:'Innovation'}, 
        2:{link:'ideation.html',color:'#7e6931',text:'Ideation'} 
        } 
      }, 
      cGtext:{ 
       length:5, 
       lineColor:'#579549', 
       prop:{ 
        0:{link:'catalogs .html',color:'#7a5967',text:'Catalogs', 
        subLink:{0:{link:'SEO_SMM.html',color:'#4e4b69',text:'SEO/SMM',align:'top'},1:{link:'site_analytics.html',color:'#545454',text:'Site analytics',align:'btm'}}}, 
        1:{link:'socialmedia.html',color:'#1e9ead',text:'Innovation'}, 
        2:{link:'loyalty .html',color:'#8fad34',text:'Ideation'}, 
        3:{link:'promotions .html',color:'#563b64',text:'Promotions'}, 
        4:{link:'implementations.html',color:'#2c6566',text:'Implementations', 
        subLink:{0:{link:'integrating.html',color:'#4c4a66',text:'Integrating',align:'top'},1:{link:'payment.html',color:'#948048',text:'Payment',align:'btm'}}} 
        } 
      } 
} 

我的功能,我尝试:

var links = []//just i need all the objects which contains the link. 

     var objFinder = function (obj){ 
      $.each(obj,function(key,val){ 
       if(key == 'link' && typeof val == 'string'){ 
        links.push(val) 
       }else{ 
        objFinder(val);//throws errors; 
       } 
      }) 
     } 
     objFinder(xploreMaps); 
    } 

回答

1

我认为主要的问题是,你的对象有一个属性length。这正在搞乱处理。见我在这里创造了小提琴:

http://jsfiddle.net/8Zfdj/

我只是注释掉length财产,它似乎正常工作。我还做了一些小的清理,比如添加缺少的分号,但这不是主要问题。

你可以看到jQuery的错误(无效)位置:

http://bugs.jquery.com/ticket/7260

相关问题