javascript
  • dynamic-data
  • 2010-06-13 49 views 2 likes 
    2

    有什麼方法可以將字符串轉換爲Javascript中的變量?現在,我有什麼是基於選擇框的值更新數據的腳本:將字符串轉換爲Javascript中的變量

    <script type="text/javascript"> 
    var a = new Array(); 
    a[0] = 'Name'; 
    a[1] = 'Description'; 
    
    var b = new Array(); 
    b[0] = 'Name 2'; 
    b[1] = 'Description 2'; 
    
    function changeSystem(){ 
        var selectedAccount=document.getElementById('selected_option').value; 
    
        document.getElementById('name').innerHTML = selectedAccount[0]; 
        document.getElementById('description').innerHTML = selectedAccount[1]; 
    } 
    </script> 
    <form method="POST"> 
        <select onchange="changeSystem()" id="selected_option"> 
        <option>A</option> 
        <option>B</option> 
        </select> 
    </form> 
    <span id="name"></span><br> 
    <span id="description"></span><br> 
    

    selectedAccount<select>所選元素的字符串。但是,要訪問該陣列,它需要是一個變量,即a[0]而不是'a'[0]。這有什麼解決方案?

    回答

    4
    var dict = { 
        'A': ['Name', 'Description'], 
        'B': ['Name 2', 'Description'] 
    }; 
    
    dict['A'][0] 
    

    所以,動態地

    dict[selectedAccount][0] 
    

    訪問您可以使用對象文本而不是數組:

    var dict = { 
        'A': {'name': 'john'} 
    }; 
    
    dict['A']['name'] 
    
    3

    我會使用類似的東西:

    <script type="text/javascript"> 
    var stuff = { 
        A: { name: 'Name', desc: 'Description'}, 
        B: { name: 'Name 2', desc: 'Description 2'} 
    }; 
    
    function $(aId) { 
        return document.getElementById(aId); 
    } 
    
    function changeSystem(){ 
        var selectedAccount = $('selected_option').value; 
    
        if (selectedAccount in stuff) { 
         $('name').innerHTML = stuff[selectedAccount].name; 
         $('description').innerHTML = stuff[selectedAccount].desc; 
        } else { 
         $('name').innerHTML = ''; 
         $('description').innerHTML = ''; 
        } 
    } 
    </script> 
    <form method="POST"> 
        <select onchange="changeSystem()" id="selected_option"> 
         <option>A</option> 
         <option>B</option> 
         <option>C</option> 
        </select> 
    </form> 
    <span id="name"></span><br> 
    <span id="description"></span><br> 
    

    測試日期:Google Chrome 6.0.427.0 de v

    +1

    奇怪的我在發帖時沒有看到meder答案:? – 2010-06-13 04:32:42

    +0

    JSON?我想你的意思是對象文字符號? http://benalman.com/news/2010/03/theres-no-such-thing-as-a-json/ – 2010-06-13 12:24:45

    +0

    @謝恩,感謝您的鏈接。 – 2010-06-13 13:53:52

    相關問題