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関数が 2 つのパラメーター ("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 つのパラメーターのみを受け取ります。

于 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

これを試して:

<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 に答える
0

引用符を取り出します:

var show = "<p>Show: <a href=# onClick='showArray(array1)'>Click to show array</a></p>";
于 2012-07-05T22:48:44.257 に答える