我正在练习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
中使用答案 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>