正在加工xmlhttp的send方法,想把一个attr0:{attr1: val1, attr2:{attr3: val3, attr4: val4}}这样的object通过函数转换成"attr1[]=val1&attr2[]=attr3&attr2[]=attr4&attr3=val3&attr4=val4"这样的字符串function ParseData(obj)
{
   .....
   if(/*is obj*/) str += ParseData(attr2);
   ....
   return str;
}但是obj本身的名字attr0如何获得呢?

解决方案 »

  1.   


    <script>
     var obj = {name:"js",age:"15"};
     for(var param in obj){
    alert(param+":"+obj[param]);
     }
      </script>
      

  2.   


    var obj = {a:"111",b:"2222"};
    var s = "{";
    for(var i in obj){
       s += i+":\""+obj[i]+"\",";
    }
    s = s.substr(0,s.length-2);
    s += "}";
    alert(s);
      

  3.   

    你好,获得里面的变量名是可以的,在遍历时用key,但是获得obj本身的名字呢(这里是"obj")?
      

  4.   

    你在你传过来的obj对象里把obj本身的名字构造为obj的一个属性写上就是了。再用上面的方法去取
      

  5.   

    你好,可能你误会了,我是想得到object本身的名字"object";
      

  6.   

    呃,发现思路错了,不需要获得变量名,名字随便起一个就可以了,反正得出的字符串不需要描述这个变量本身的结构,最后把"attr0[]=...."的部分去掉就行了
    不过为了以后可能用到,还是想知道有无获得变量名的方法。
      

  7.   

    未知处定义的变量知道了名字也没用
    你又不能用只有 已知对象包含键/值 对的形式下  你预知键 才有操作可能比如   key='my';
    window[key]={};window已知 key已知 则 可以获取 window[key]
      

  8.   

    var obj = {a:"111",b:"2222"};   //也可以是其他未知对象for(var i in obj){
      alert(i);    //i 这时候就是变量名a,b   
    }