0

我在将数组作为函数的参数传递时遇到问题:

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>";
}
4

5 回答 5

2

您的代码不起作用,因为showvar 的评估值如下:

"<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"] 数组

于 2012-07-05T22:47:55.923 回答
1

每个人都想念它:

var show = "<p>Show: <a href='javascript:showArray(array1)'>Click to show array</a></p>"
  1. 如果使用变量,则必须去掉引号。
  2. “href”属性不包含引号。
  3. 建议使用href="javascript:"而不是onclick
于 2012-07-05T22:50:30.183 回答
0

取出引号:

var show = "<p>Show: <a href=# onClick='showArray(array1)'>Click to show array</a></p>";
于 2012-07-05T22:48:44.257 回答
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/

于 2012-07-05T22:55:13.613 回答
0

您的 onclick 调用showArray但您的函数被调用show

如果你检查 DOM,你会看到 JS 正在创建什么:

<a href="#" onclick="showArray(1,2)">Click to show array</a>

那是无效的!所以只需将其更改为

<a href='#' onClick='showArray(array1)'>

DOM 也正是如此。这是有效的。

演示

于 2012-07-05T22:56:05.453 回答