js如何取对象的属性名?<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
<script type="text/javascript">
var obj={
"png008.js" : /alpha/,
"superfish.js" : /sf-menu/,
"jquery.tools.min.js" : /t1|t2|scroll|scrollable/,
"jquery.corner.js" : /corner/,
"sexybuttons.css" : /sexybutton/,
"menu.css" : /sf-menu/,
"dede.css" : /diggbox|dede_comment/
};
var array=[];
// 请问js怎么获取对象的属性名?比如我想把obj的所有属性名称放到一个数组array中去,怎么做?
// 结果应该是["png008.js","superfish.js",.....]

// 又比如我想取obj中第三个项的属性名,怎么取?
</script>

解决方案 »

  1.   

    in my option,
    there is no way.
    you can only use for... in
      

  2.   


        var obj={
            "png008.js"            :    /alpha/,
            "superfish.js"            :    /sf-menu/,
            "jquery.tools.min.js"    :    /t1|t2|scroll|scrollable/,
            "jquery.corner.js"        :    /corner/,
            "sexybuttons.css"        :    /sexybutton/,
            "menu.css"            :    /sf-menu/,
            "dede.css"            :    /diggbox|dede_comment/
        };
        var array=[];
        // 请问js怎么获取对象的属性名?比如我想把obj的所有属性名称放到一个数组array中去,怎么做?
        // 结果应该是["png008.js","superfish.js",.....]
        
        // 又比如我想取obj中第三个项的属性名,怎么取? function getItemsArr(o)
    {
    var tmpArr = [];
    for(var item in o)
    {
    tmpArr.push(item);
    }
    return tmpArr;
    } alert(getItemsArr(obj)); function getItemName(idx,o)
    {
    return getItemsArr(obj)[idx-1];
    } alert("obj 中第三项的属性名为 :"+ getItemName(3,obj))
      

  3.   

    为什么不直接用<script src="XX.js">
    的形式来包含所有的页面
    然后直接调用呢你这样的方式基本不行吧
    不能动态读取其他文件里的方法
      

  4.   

    谢谢,原来还是要转为array才能取属性名的呀,还是直接用array简单
      

  5.   

    可以直接用for(a in obj){....(a就是属性名obj[a]就是属性对应的值)}