Javascript Jquery附加连接onclick

Javascript Jquery附加连接onclick,javascript,jquery,append,Javascript,Jquery,Append,我试图传递两个变量,一个是整数,另一个是字符串,比如我想传递id,name <div class='redstatus' onclick='redStatus("+Id+","+name+")'><span class='countspan''>"+red_count+"</span></div> “+red\u count+”工作正常 我想再发送一个参数名和用逗号分隔的id <div class='redstatus' onclick='

我试图传递两个变量,一个是整数,另一个是字符串,比如我想传递id,name

<div class='redstatus' onclick='redStatus("+Id+","+name+")'><span class='countspan''>"+red_count+"</span></div>
“+red\u count+”
工作正常

我想再发送一个参数名和用逗号分隔的id

<div class='redstatus' onclick='redStatus("+Id+","+name+")'><span class='countspan''>"+red_count+"</span></div>
“+red\u count+”“+amber\u count+”“+green\u count+”)。附加到(“.right\u div”);
红细胞计数=0;
琥珀色计数=0;
绿色计数=0;
//var Streams=appData.LOB[j].Streams;
//log(“在“+$wrapper”之前);
//变量$wrapper=$('.'.+LOBRef+'');
//log(“在“+$wrapper”之后);
//$wrapper.find('.test').sort(函数(a,b){
///返回+a.dataset.name-+b.dataset.name;
//})
//.appendTo($wrapper);
}
}

我已添加代码供您参考

如果要连接传递给函数的两个参数,请不要将变量括在单引号或双引号中,它应为:onclick=“redStatus(Id,name)”

功能状态(Id、名称){
var结果=Id+“”+名称;
document.getElementsByClassName('countspan')[0].innerText=result;
}

附加两个参数
附加两个参数

问题出在线路上

$("<div style='text-align:center;height:5vh;margin:2vw;'> <div class='redstatus' onclick='redStatus("+LOBId+","+LOBNameRef+")'><span class='countspan''>"+red_count+"</span></div> <div class='amberstatus' onclick='amberStatus("+LOBId+")'><span class='countspan'>"+amber_count+"</span></div> <div class='greenstatus' onclick='greenStatus("+LOBId+")'><span class='countspan'>"+green_count+"</span></div></div>").appendTo(".right_div");
(或者将您想要的任何参数传递给
状态
函数-不需要引号转义!)

确保
LOBId
s和
LOBNameRef
s不会在循环的其他迭代中重新分配自己-使用
const
声明它们,例如:

const LOBId = appData.LOB[j].LOBID;
const LOBName = appData.LOB[j].LOBName;
const LOBRef = appData.LOB[j].LOBRef;
所以它们的作用域是块,而不是函数


(最好只有一个
Status
函数,而不是三个独立的函数(它们可能都做一些类似的事情)-应该避免太多重复)

Better to-所需的转义是毫无意义的,并且由于作用域不好,您引用的所有内容都必须是全局的。使用Javascript而不是正确地添加侦听器实际上它位于for循环中,每次Id和名称发生更改时。无论是否在for循环中,使用inline handler此div行i都是一个坏主意s inside.append所以我们只需要使用inlinehandler对吗?如果没有,请帮助我。我不知道。请为a发布足够完整的代码,包括循环和
。append
行-问题中目前没有足够的信息可以说
const htmlStr = `
<div style='text-align:center;height:5vh;margin:2vw;'>
  <div class='redstatus'><span class='countspan'>${red_count}</span></div>
  <div class='amberstatus'><span class='countspan'>${amber_count}</span></div>
  <div class='greenstatus'><span class='countspan'>${green_count}</span></div>
</div>
`;
const $row = $(htmlStr);
$row.find('.redstatus').on('click', () => redStatus(LOBId, LOBNameRef));
$row.find('.amberstatus').on('click', () => amberStatus(LOBId, LOBNameRef));
$row.find('.greenstatus').on('click', () => greenStatus(LOBId, LOBNameRef));
$row.appendTo(".right_div");
const LOBId = appData.LOB[j].LOBID;
const LOBName = appData.LOB[j].LOBName;
const LOBRef = appData.LOB[j].LOBRef;