Javascript-如何在onclick事件中将数组作为参数传递?
我有一个数组要传递给javascript onclick函数。我在按钮的onclick事件中发送该数组。onclick函数返回我[object]。是否有其他方法使用数组调用该函数 这是我的代码:Javascript-如何在onclick事件中将数组作为参数传递?,javascript,jquery,arrays,Javascript,Jquery,Arrays,我有一个数组要传递给javascript onclick函数。我在按钮的onclick事件中发送该数组。onclick函数返回我[object]。是否有其他方法使用数组调用该函数 这是我的代码: var data_type= $.parseJSON(data_playtype[1]);//{"1":"apple","2":"orange","23":"berry","8":"grape","9":"mango"} str1.push('<td><a href="javasc
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);
});
}
var data_type=$.parseJSON(data_playtype[1])//{“1”:“苹果”,“2”:“橘子”,“23”:“浆果”,“8”:“葡萄”,“9”:“芒果”}
str1.push(“数据”);
功能展示ABC(水果){
$。每个(水果、功能(pid、pt){
警报(pt);
});
}
使用内联JS不是一个好主意。我将使用数据属性保存数据,如下所示:
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');
.....
});
var数据类型=。。。。。;
变量链接=$('
.data(键、值)
键
类型:字符串
命名要设置的数据段的字符串
值
类型:什么都行
新数据值;这可以是除未定义之外的任何Javascript类型
我有一个数组要传递给javascript onclick函数。
我在按钮的onclick事件中发送该数组
函数return me[object]。有其他方法吗
用数组调用该函数
注意,data\u type
在js
处似乎不是Array
;data\u type
似乎是Object
尝试使用.on()
,在中调用showABC()
,单击事件处理程序,并将数据类型作为参数
var数据_playtype=[];
data_playtype[1]=JSON.stringify({
“1”:“苹果”,
“2”:“橙色”,
“23”:“浆果”,
“8”:“葡萄”,
“9”:“芒果”
});
var data_type=$.parseJSON(data_playtype[1]);
//{“1”:“苹果”,“2”:“橘子”,“23”:“浆果”,“8”:“葡萄”,“9”:“芒果”}
var-str1=[];
str1.推送(“”);
功能展示ABC(水果){
$。每个(水果、功能(pid、pt){
警报(pt);
});
};
$(“表tbody”).append(str1.find(“a”)
.on(“单击”,函数(){
showABC(数据类型)
});
不要使用HTML和内联事件处理程序。使用jQuery构建DOM元素并绑定事件处理程序,这样您就可以使用闭包。我强烈建议阅读jQuery教程:,pt
是一个对象,因此当您执行alert(pt)
时,它会将对象字符串化为[object object]
。尝试访问该对象的特定键。@JoshBeam:在HTML生成之前,字符串转换已经发生了。@FelixKling,哦,是的,你说得对。在string'edonClick
,是吗?当传递到数据时,jQuery会自动将对象转换为JSON吗?@FelixKling,你到底是什么意思?W你担心什么?没关系,我被“数据属性”弄糊涂了。忘了jQuery有自己的数据存储。但是你提出了一个好的观点。没有实际的数据属性添加到元素中。