• 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 是用来遍历对象的。一个常见的错误用法是使用它来循环遍历数组成员

    图一:

    疯癫不成狂,有酒勿可尝;世间良辰美,终成水墨白。
  • 相关阅读:
    TortoiseGit 连接oschina不用每次输入用户名和密码的方法
    IIS7 配置SSL 绑定主机头
    二种方法安装卸载Windows服务的命令
    System.Data.SqlClient.SqlException: 从 datetime2 数据类型到 datetime 数据类型的转换产生一个超出范围的值
    SQL Server 2008 角色
    sql2008“备份集中的数据库备份与现有的xx数据库不同”解决方法
    winform窗体间传值
    C#用到的一些代码汇总,后期再整理
    排球计分程序中英文切换
    ASP.NET MVC 排球计分程序 (八)排球计分程序的演示
  • 原文地址:https://www.cnblogs.com/chuyu/p/sophia.html
Copyright © 2020-2023  润新知