Javascript-如何在onclick事件中将数组作为参数传递?

时间:2015-06-22 02:08:11

标签: javascript jquery arrays

我有一个数组,我想传递给javascript onclick函数。我在按钮的onclick事件中发送该数组。 onclick函数返回我[object Object]。是否有不同的方法来使用数组调用该函数?

我的代码:

var data_type= $.parseJSON(data_playtype[1]);//{"1":"apple","2":"orange","23":"berry","8":"grape","9":"mango"}


str1.push('<td><a href="javascript:void(0)" onClick="showABC(\''+data_type+'\')">'Data'</td>');



function showABC(fruit){

    $.each(fruit,function(pid,pt){
        alert(pt);
    });

}

2 个答案:

答案 0 :(得分:2)

  

我有一个数组,我想传递给javascript onclick函数。   我在按钮的onclick事件中发送该数组。 onclick   函数返回我[object Object]。有没有不同的方法   用数组调用该函数?

注意,data_type Array似乎不是js; data_type似乎是Object

尝试使用.on(),在showABC()事件处理程序中调用click并将data_type作为参数。

&#13;
&#13;
var data_playtype = [];

data_playtype[1] = JSON.stringify({
  "1": "apple",
  "2": "orange",
  "23": "berry",
  "8": "grape",
  "9": "mango"
});

var data_type = $.parseJSON(data_playtype[1]);
//{"1":"apple","2":"orange","23":"berry","8":"grape","9":"mango"}

var str1 = [];
str1.push("<td><a href=javascript:void(0)>Data</a></td>");

function showABC(fruit) {

  $.each(fruit, function(pid, pt) {
    alert(pt);
  });

};

$("table tbody").append(str1).find("a")
  .on("click", function() {
    showABC(data_type)
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<table>
  <tbody></tbody>
</table>
&#13;
&#13;
&#13;

答案 1 :(得分:0)

DEMO

使用内联JS并不是一个好主意。我会使用data属性来保存数据,如下所示:

var data_type = .....;
var link = $('<a/>').data('data_type', data_type).html('Data');
str1.push( $('<td/>').html( link ) );

//event handler
link.on('click', function(e) {
    e.preventDefault();
    var data_type = $(this).data('data_type');
    .....
});

参考:https://api.jquery.com/data/

  

.data(键,值)

     

     

类型:字符串   命名要设置的数据的字符串。

     

     

类型:任何东西   新数据值;这可以是除undefined之外的任何Javascript类型。