gpt4 book ai didi

javascript - 在从 Javascript 附加的 onclick 函数中传递参数

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:39:20 26 4
gpt4 key购买 nike

我有一段代码,如下所示,

$(document).ready(function(){
var agr1='#19865 - testArg';
var arg2=1856
$('#dv_Test').append('<button onclick="testFunction('+ agr1 +','+ arg2 +')">Test</button>')
});
function testFunction(arg1, arg2) {
alert(arg1);
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id="dv_Test"></div>

这里出现如下错误

testFunction(#19865 - testArg,1856)  

Uncaught SyntaxError: Invalid or unexpected token

我的字符串 agr1 本身没有 ""

我该如何解决这个问题?

最佳答案

问题是因为 arg1 值是一个字符串,需要用引号引起来:

$(document).ready(function() {
var agr1 = '#19865 - testArg';
var arg2 = 1856
$('#dv_Test').append('<button onclick="testFunction(\'' + agr1 + '\',' + arg2 + ')">Test</button>')
});

function testFunction(arg1, arg2) {
alert(arg1);
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id="dv_Test"></div>

但是更好的方法是将这些值放在data 属性中,并添加一个委托(delegate)事件处理程序来处理所有动态创建的按钮。试试这个:

$(document).ready(function() {
var agr1 = '#19865 - testArg';
var arg2 = 1856
var $div = $('#dv_Test').append('<button data-arg1="' + agr1 + '" data-arg2="' + arg2 + '">Test</button>');

$div.on('click', 'button', function() {
var $btn = $(this);
console.log($btn.data('arg1'), $btn.data('arg2'));
});
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id="dv_Test"></div>

关于javascript - 在从 Javascript 附加的 onclick 函数中传递参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54005968/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com