【问题标题】:Convert string to variable in Javascript在Javascript中将字符串转换为变量
【发布时间】:2010-06-13 04:16:07
【问题描述】:

有什么方法可以将字符串转换为 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&lt;select&gt; 中所选元素的字符串。但是,为了访问数组,它需要是一个变量,即a[0] 而不是'a'[0]。有什么解决办法?

【问题讨论】:

    标签: javascript dynamic-data


    【解决方案1】:
    var dict = {
        'A': ['Name', 'Description'],
        'B': ['Name 2', 'Description']
    };
    
    dict['A'][0]
    

    所以动态访问它

    dict[selectedAccount][0]
    

    您可以使用对象字面量代替数组:

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

    【讨论】:

      【解决方案2】:

      我会使用类似的东西:

      <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>
      

      测试于:谷歌浏览器 6.0.427.0 开发版

      【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-08-02
      • 1970-01-01
      • 2020-02-13
      • 1970-01-01
      • 1970-01-01
      • 2019-03-19
      • 2016-01-29
      相关资源
      最近更新 更多