从另一个变量触发Javascript警报

时间:2017-07-19 09:36:31

标签: javascript

我有以下Javascript代码:

<script>
    function slboxchg()
    {
        if(document.getElementById("slbox").value != 0)
        {
            var x = 'a'+document.getElementById("slbox").value;
            alert(x);
        }
    }
</script>

<script>
    var a1 = "1,2,3";
    var a2 = "3,4,5";
</script>

<select id='slbox' onchange='slboxchg()'>
    <option value='0'>None</option>
    <option value='1'>Apple</option>
    <option value='2'>Banana</option>
</select>

当我选择&#34; Apple&#34;时,我希望警告框显示&#34; 1,2,3&#34;,但它显示&#34; a1&#34;代替。

感谢您的时间。

3 个答案:

答案 0 :(得分:3)

而不是:

alert(x);

尝试:

alert(window[x]);

这是 CodePen Demo

答案 1 :(得分:0)

那么当我们选择“Apple”时会发生什么?调用onchange事件,触发slboxchg(),然后检查该值是否为0,这是1 != 0以来的。

然后将变量x定义为包含字母'a'的字符串加上元素的值。这个值也恰好是一个字符串,所以我们实际获得的是x = 'a' + '1',这只是一个返回x = 'a1'的字符串连接。

答案 2 :(得分:0)

让我们以不同的方式做到这一点。

<script>
    var ar = ["0","1,2,3","3,4,5"];
    </script>

<script>
function slboxchg()
{
  if(document.getElementById("slbox").value != 0)
  {
    var x = ar[document.getElementById("slbox").value];
    alert(x);
  }
}
</script>



<select id='slbox' onchange='slboxchg()'>
<option value='0'>None</option>
<option value='1'>Apple</option>
<option value='2'>Banana</option>
</select>