zoukankan      html  css  js  c++  java
  • ajax循环json 中的 for(var prop in data) 与 hasProperty()

      上周终于有机会接触了ajax...  因为一直没有做过,所以觉得不是很理解,用jQuery 写的

      首先:

     1 $(".J-update").bind("click",function(){
     2 
     3     vars.....//声明定义了一堆变量
     4 
     5     $.ajax({
     6         url : ...,
     7         datatype :  "jsonp", 
     8         jsonp : "cb",
     9         type : "GET",
    10         timeout : 10000,
    11         sucess : function(){
    12 
    13         },
    14         error : function(){
    15 
    16         }
    17     });
    18 
    19 });

            json 是一个对象,里面包含很多个具体的对象;而jsonp 是为解决“跨域” (什么是"跨域":"图一"?)

     1     var prop;
     2     var obj = {
     3         name    : {aa:"Nick",bb:"xian"},
     4         sex     : {aa:"Man",bb:"dd"},
     5         country : {aa:"America",bb:"hao"}
     6     };
     7     for(prop in obj){
     8         console.log("Property name is ",prop);
     9         console.log("Property value is ",obj[prop].bb);
    10     }

      上面的obj 可以认为是json 文件。prop 是obj 的“属性”。 for(prop in obj) 会一条一条的循环obj 。上面结果如下:

      Property name is name
      Property value is xian
      Property name is sex
      Property value is dd
      Property name is country
      Property value is hao
     1 var prop,i = 0;
     2     var obj = {
     3         name    : {aa:"Nick",bb:"xian"},
     4         sex     : {aa:"Man",bb:"dd"},
     5         country : {aa:"America",bb:"hao"}
     6     };
     7     for(prop in obj){
     8         console.log("Property name is ",prop);
     9         console.log("Property value is ",obj[prop].bb);
    10         i++;
    11         console.log(i);//可以计算出有多少条数据
    12         console.log("prop.length:",prop.length," obj[prop]:",obj[prop]," obj[prop].length:",obj[prop].length);//D方案
    13     }

      上面代码定义var i; i++;可以得到有几条数据。而D方案 prop.length 就是字符串的长度,obj[prop].length 则是 undefined.

      for-in 循环有一个问题,就是它不仅遍历对象的实力属性(instance property), 同样还遍历从原型继承来的属性。当遍历自定义对象的属性时,往往会因为意外的结果而终止。出于这个原因,最好使用 hasOwnProperty()方法来为 for-in 循环过滤出实例属性。

      
    1 for(prop in obj){
    2     if(obj.hasOwnProprty(prop)){
    3         console.log("Property name is ",prop);
    4         console.log("Property value is ",obj[prop].bb);
    5     }    
    6 }

        关于 for-in 循环还有一点需要注意,即for-in 是用来遍历对象的。一个常见的错误用法是使用它来循环遍历数组成员

    图一:

    疯癫不成狂,有酒勿可尝;世间良辰美,终成水墨白。
  • 相关阅读:
    Adobe flash player更新失败
    配置NAT回流导致外网解析到了内网IP
    Android下海康实时视频解码
    红米无线不稳定问题
    TP-Link路由器刷dd-wrt的linux,无线信号增强不少
    发布FTP服务,防火墙配置
    SQL SERVER 实现分组合并实现列数据拼接
    MyGeneration 数据库驱动为空
    WIND2003 安装Zend studio 报错
    TOAD FOR MYSQL 进行数据插入时乱码的解决办法---MariaDB 5.5
  • 原文地址:https://www.cnblogs.com/chuyu/p/sophia.html
Copyright © 2011-2022 走看看