2012-11-23 148 views
-1

我有简单JS循环如何通过JavaScript对象循环?

jQuery('#checkbox-counter').live('click', function(){ 
    jQuery.get('index.php?option=get_site_list=true', 
     function(data){ 
      console.log(data[1]); 
      for(var index in data[1].id){ 
       console.log(data[1].id[index]); 
       console.log(data[1].name[index]); 
      } 
     }, 
     'JSON' 
    ) 
}); 

问题是在屏幕

enter image description here

它还打印一些jQuery代码(在源)或示出了在控制台的功能...是示出在哪里问题?

+0

你究竟在做什么? –

+0

@RichardJPLeGuen通过循环获取对象的值 – Kin

+0

嗯,这就是代码所做的 - 其中一些值是未定义的,或者是函数对象或是其他对象。你能解释为什么这对你来说是个问题吗?阅读你的问题并不明显。 –

回答

1

data[1].iddata[1].name属性你循环通过是数组,所以你应该使用常规for循环而不是for..in:当您使用for..in它给你除了刚才的数字索引之外的其它特性

 for(var index = 0; index < data[1].id.length; index++){ 
      console.log(data[1].id[index]); 
      console.log(data[1].name[index]); 
     } 

+0

1问题 - 如果数组是为例子0, 2,3,4(不是1) - 循环不起作用... – Kin

+0

您可以测试'if(data [1] .id [index]!= undefined)...',但尽管JavaScript数组可以有“缺少”元素你的数据来自JSON和JSON不支持稀疏数组,所以我没有看到你在这种情况下会有什么问题。(不要用你的问题中显示的方括号数组语法与'[“8”,“4”]' - 你可以通过使用一个对象来模拟一个稀疏数组,但是对于任何进程产生的JSON字符串来说,使用一个包含方括号的适当数组,其他时间用大括号装饰数组。) – nnnnnn