2013-04-07 35 views
0

我在下面有這個簡單的代碼。我試圖查詢在輸入框中輸入的任何形狀的名稱。我可以正確地傳遞函數中的參數,但是當我嘗試使用參數查詢它時,它會導致我出錯。下面如何將參數傳遞給變量來訪問對象

<div id="page"> 
    <input type="text" id="getShape"/> 
    <input type="button" onClick="getShapeDetails()" /> 
</div> 

<script> 
    shapes = { 
     "circle" : {"name":"circle", "sides":"0", "color":"yellow"},   
     "triangle" : {"name":"triangle", "sides":"3", "color":"red"},   
     "square" : {"name":"square", "sides":"4", "color":"blue"}, 
    }; 

    function getShapeDetails(){ 
     var getShape = document.getElementById("getShape").value; 

     function getShapesDetail(shape){ 
     console.log(shape); 
    console.log(shapes.shape.name); 
     } 

     getShapesDetail(getShape); 
    } 
</script> 
+0

,您發佈的代碼無關使用JSON。 JSON是*數據交換格式*,如XML或CSV。在你的例子中,'shapes'意味着一個JavaScript對象。 – 2013-04-07 16:50:03

回答

0

console.log(shape); //I'm getting the right input as parameter 
console.log(shapes.shape.name); //not successful using passed parameter. 

//代碼試試這個:

console.log(shapes[shape].name); 

您要使用的形狀索引到的形狀結構。

+0

這回答了我的問題。謝謝馬塞勒斯。 – Prime 2013-04-07 16:40:47

+0

不客氣:) – Marcellus 2013-04-07 16:44:20

0

這個工作對我來說:FYI

<html> 
    <body> 
     <script> 
       var shapes = { 
        "circle" : {"name":"circle", "sides":"0", "color":"yellow"},   
        "triangle" : {"name":"triangle", "sides":"3", "color":"red"},   
        "square" : {"name":"square", "sides":"4", "color":"blue"}, 
       }; 
       console.log("name: ", shapes.circle.color); 
     </script> 
    </body> 

</html> 
+0

雖然OP不使用'circle',但他使用了'形狀'這是一個變量。 – 2013-04-07 16:49:02

相關問題