Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/77.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript-如何在onclick事件中将数组作为参数传递?_Javascript_Jquery_Arrays - Fatal编程技术网

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

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

我有一个数组要传递给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="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'ed
onClick
,是吗?当传递到
数据时,jQuery会自动将对象转换为JSON吗?@FelixKling,你到底是什么意思?W你担心什么?没关系,我被“数据属性”弄糊涂了。忘了jQuery有自己的数据存储。但是你提出了一个好的观点。没有实际的数据属性添加到元素中。