我有一个数组,我想传递给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);
});
}
答案 0 :(得分:2)
我有一个数组,我想传递给javascript onclick函数。 我在按钮的onclick事件中发送该数组。 onclick 函数返回我[object Object]。有没有不同的方法 用数组调用该函数?
注意,data_type
Array
似乎不是js
; data_type
似乎是Object
尝试使用.on()
,在showABC()
事件处理程序中调用click
并将data_type
作为参数。
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;
答案 1 :(得分:0)
使用内联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类型。