'变量'变量在javascript中不起作用

时间:2015-07-13 13:28:31

标签: javascript html

我正在练习javascript。

我尝试在Javascript中使用数组元素作为数组名。

我搜索了stackoverflow并找到了一些像this

这样的链接

当我测试这个我发现它不起作用时,它在我调用第二个函数时给出了unfind。请参阅jsbin link ,也许我错了,请帮帮我。 这是我的代码,并链接:https://jsbin.com/yazowutera/

<button onclick="testArrays1(a, [vic.zero, vic.one])">source</button>
<br>
<button onclick="testArrays2(a, vic[all[1]])">desti</button>

和javascript

<script>

var vic = {

    zero : ["00","01","02"],

    one : ["10","11","12"],

    two : ["20","21","22"]

};
var all = ["zero","one","two"];

var a = "a";


function testArrays1(needle, arrays){
    for (var i=0; i<arrays.length; i++) {
        alert(needle +arrays[i]);
    }
}

function testArrays2(needle, arrays) {
  //for (var i=0; i<arrays.length; i++) {
    alert(needle +arrays);
  //}
}

</script>

我现在不在j-query中请在javascript

中使用

3 个答案:

答案 0 :(得分:1)

似乎all是为HTMLAllCollection保留的特殊变量,而它的第二个元素(即all[1])是HTMLHeadElement。这仅适用于使用内联脚本(元素属性中的脚本)。如果使用普通的脚本块,你似乎必须做document.all(但这可能是因为使用JSFiddle进行测试的副作用)。

建议的解决方案是使用不同的变量名称。例如,将变量更改为test

<button onclick="testArrays2(a, vic[test[1]])">desti</button>

var test = ["zero","one","two"];

答案 1 :(得分:1)

&#34;所有&#34; (或&#34; document.all&#34;)是一个返回HTMLAllCollection的保留变量。将您的变量名称更改为javascript中的其他名称,它将起作用。

答案 2 :(得分:0)

正如其他人提到的那样所有都是保留关键字。但如果你仍然想使用它,你可以使用如下。哪个有效!

请记住:在JavaScript编码中始终使用保留关键字作为变量是一种不好的做法。所以不要使用那些保留字。

您的Javascript:

window.all = ["zero","one","two"];

您的HTML:

<button onclick="testArrays2(a, window.all[1])">desti</button>