我无法将数组作为函数的参数传递:
function test() {
var array1 = ["1","2"];
var show = "<p>Show: <a href=# onClick='showArray("+array1+")'>Click to show array</a></p>";
}
所以我需要有一个onClick,但是当我传递一个数组并调用函数时
function showArray(array) { alert (array.length); }
什么都不返回。为什么不工作?
编辑:
function test() {
var array1 = [];
array1[0] = {
"type" : 0,
"message" : "example",
"from" : "path1",
"count" : 1,
"isChecked": false
};
array1[1] = {
"type" : 2,
"message" : "example",
"from" : "path2",
"count" : 50,
"isChecked": false
};
var show = "<p>Show: <a href=# onClick='showArray(["+array1+"])'>Click to show array</a></p>";
}
答案 0 :(得分:2)
您的代码无效,因为show
var的评估值如下:
"<p>Show: <a href=# onClick='showArray(\"1\",\"2\")'>Click to show array</a></p>"
这意味着showArray
函数正在接收两个参数(“1”和“2”),它们都不是数组,而是字符串。
要使代码正常工作,请使用:
var show = "<p>Show: <a href=# onClick='showArray(["+array1+"])'>Click to show array</a></p>"
通过这种方式,评估值将为:
"<p>Show: <a href=# onClick='showArray([\"1\",\"2\"])'>Click to show array</a></p>"
这意味着showArray
只会收到一个参数:[“1”,“2”]数组
答案 1 :(得分:1)
每个人都错过了它:
var show = "<p>Show: <a href='javascript:showArray(array1)'>Click to show array</a></p>"
href="javascript:"
代替onclick
答案 2 :(得分:0)
取出引号:
var show = "<p>Show: <a href=# onClick='showArray(array1)'>Click to show array</a></p>";
答案 3 :(得分:0)
试试这个:
<script>
var array1 = ["1","2"];
function showArray(myArray) { alert (myArray.length); }
</script>
<p>Show: <a href='#' onClick='showArray(array1); return false;'>Click to show array</a></p>
以下是此示例的链接:http://jsfiddle.net/eNXx5/
答案 4 :(得分:0)
您的onclick调用showArray
,但您的功能称为show
。
如果您检查DOM,您将看到JS正在创建的内容:
<a href="#" onclick="showArray(1,2)">Click to show array</a>
那是无效的!所以只需将其更改为
<a href='#' onClick='showArray(array1)'>
和DOM也是如此。这是有效的。