如何从 onclick 函数传递参数?
How to pass argument from onclick function?
我创建了一个 table 并使用 jQuery 填充了它。现在我想添加一个文本,比如当我们点击它时,一个函数就会执行。我已经使用 onclick
并且工作正常,但我还需要向我的函数发送一些参数,我如何从 onclick
:
向目标函数发送参数
var dataHtml = '';
$.each(data, function (index, user) {
dataHtml+="<code onclick=show_popup(1,user['donner'][0])> Donner details</code>";
});
$("#t-data").html(dataHtml);
function show_popup(show=0, donner){
$(document).ready(function(){
var showModel=show;
if(showModel==`1`){
$(`#modal-default-admin`).modal(`show`);
}
});
但它显示“用户未定义”错误。用户已定义,我也可以访问它。
user
实际上没有定义。您面临的问题是您使用 HTML 作为字符串,因此您提供 onclick=show_popup(1,user['donner'][0])
作为字符串。当 jQuery 从该字符串“生成 HTML” 并单击它时,它会调用 show_popup
和 1
和 user['donner'][0]
以及 user
这里是未定义的。它仅在 $.each
循环内可用,在循环外不可用。
最简单的解决方法是直接传递值,而不是尝试将其作为指针传递。
onclick=show_popup(1,\""+ user['donner'][0] +"\")>
像这样,它会在创建HTML时使用user['donner'][0]
的值。
奖励点:您应该用引号将 onclick 属性括起来:
dataHtml += "<code onclick='show_popup(1,\""+ user['donner'][0] +"\")'> Donner details</code>";
只是为了确保 user['donner'][0]
的值中的 space 不会再次破坏它。
我创建了一个 table 并使用 jQuery 填充了它。现在我想添加一个文本,比如当我们点击它时,一个函数就会执行。我已经使用 onclick
并且工作正常,但我还需要向我的函数发送一些参数,我如何从 onclick
:
var dataHtml = '';
$.each(data, function (index, user) {
dataHtml+="<code onclick=show_popup(1,user['donner'][0])> Donner details</code>";
});
$("#t-data").html(dataHtml);
function show_popup(show=0, donner){
$(document).ready(function(){
var showModel=show;
if(showModel==`1`){
$(`#modal-default-admin`).modal(`show`);
}
});
但它显示“用户未定义”错误。用户已定义,我也可以访问它。
user
实际上没有定义。您面临的问题是您使用 HTML 作为字符串,因此您提供 onclick=show_popup(1,user['donner'][0])
作为字符串。当 jQuery 从该字符串“生成 HTML” 并单击它时,它会调用 show_popup
和 1
和 user['donner'][0]
以及 user
这里是未定义的。它仅在 $.each
循环内可用,在循环外不可用。
最简单的解决方法是直接传递值,而不是尝试将其作为指针传递。
onclick=show_popup(1,\""+ user['donner'][0] +"\")>
像这样,它会在创建HTML时使用user['donner'][0]
的值。
奖励点:您应该用引号将 onclick 属性括起来:
dataHtml += "<code onclick='show_popup(1,\""+ user['donner'][0] +"\")'> Donner details</code>";
只是为了确保 user['donner'][0]
的值中的 space 不会再次破坏它。