如何将数组元素作为参数传递给javascript中的函数?

时间:2016-01-21 15:46:36

标签: javascript arrays function

我提前为这个幼稚的问题道歉,但我是javascript的新手。

下面的简单代码可能会更改网页中的图像。实际上,点击链接A1和A2中的一个就完成了工作;相反,在B1和B2上没有。

可能是因为函数不能将数组元素本身作为参数,需要对其内容进行某种引用吗?

我已经看到了这个问题How to pass an array as argument to a function in javascript?,但是,如果我理解正确,那就是将数组作为一个整体传递:" 将数组传递给函数与传递任何其他类型没有什么不同... "

感谢您的关注!

<HTML>
<HEAD>
<TITLE></TITLE>
<script type="text/javascript">
    var  images = new Array["1.bmp","2.bmp"];

    function changeImage(a) {
        document.getElementById("image").src=a;
    }
</script>

</HEAD>
<BODY>

<P onclick="changeImage('1.bmp');">A1</P>
<P onclick="changeImage('2.bmp');">A2</P>

<P onclick="changeImage(images[0]);">B1</P>
<P onclick="changeImage(images[1]);">B2</P>

<P onclick="changeImage(images[0]);window.alert(images[0]);">C1</P>
<P onclick="changeImage(images[1]);window.alert(images[1]);">C2</P>

<P><img id="image" src="3.bmp"></P>

</BODY>
</HTML>

2 个答案:

答案 0 :(得分:1)

您的images数组从未正确定义。

如果使用new Array定义数组,则必须将其称为函数,因此使用圆括号var array = new Array("1.bmp","2.bmp");

更简单且可能更常用的方法是这样做:

var array = ["1.bmp","2.bmp"];

所以你的整个代码就像这样:

var  images = new Array("1.bmp","2.bmp");

function changeImage(a) {
  document.getElementById("image").src=a;
}
<P onclick="changeImage('1.bmp');">A1</P>
<P onclick="changeImage('2.bmp');">A2</P>

<P onclick="changeImage(images[0]);">B1</P>
<P onclick="changeImage(images[1]);">B2</P>

<P onclick="changeImage(images[0]);window.alert(images[0]);">C1</P>
<P onclick="changeImage(images[1]);window.alert(images[1]);">C2</P>

<P><img id="image" src="3.bmp"></P>

答案 1 :(得分:0)

您的代码出现的问题是images []是Javascript保留值。这是引用文档DOM中的图像。

如果您通过右键单击图像并单击&#34;检查元素&#34;来检查图像。你会发现它正在将一个对象注入到<img>元素的src中。该对象是图像元素本身。

只需将数组更改为这样就可以了:

var imgs = ["1.bmp","2.bmp"];

相关问题