在HTML中input使用onchange事件,相同时传递this和变量,如何操作

我通过遍历数据来生成HTML文档,里面需要用到input的onchange事件进行操作,函数里面需要用到this,和变量。应该如何写?

var ele = '<input class="layui-btn-primary" onchange=edit(this.value,4);>';

以上写没有问题,但是我不想用写死的4,想把这个4变成一个变量。

var num = 8
var ele = '<input class="layui-btn-primary" onchange=edit(this.value,num);>';

但是这样写会告诉我num没有被定义。
有大佬指导下么

定义num的时候不要跟创建ele节点在同一个函数作用域里,

btn.onclick = function(){
                var num = 5;
        let ele = "<input onchange='edit(this.value,num)' />";
        inner.innerHTML+=ele;
}    //  这样num就是未定义。

var num = 5;  // 把定义的变量提到外面
btn.onclick = function(){
        let ele = "<input onchange='edit(this.value,num)' />";
        inner.innerHTML+=ele;
}   //  这样就可以读取了。

function edit(a,b){
        console.log(a,b);

};

这个4要换成输入框内容吗?

写法没有问题的啊,看看问题是不是在其他地方

用事件委托可以实现,你可以试一试