Javascript 尽管在脚本中定义了函数,但为什么在检查时没有定义函数跳过和onclick?

Javascript 尽管在脚本中定义了函数,但为什么在检查时没有定义函数跳过和onclick?,javascript,jquery,html,Javascript,Jquery,Html,我正在制作一个用户脚本,向一个页面添加两个元素,并修改其他三个元素。从这三个属性中,我需要删除href和一些其他数据-*不需要的属性。然后,我想添加一个标题,并定义onclick(调用函数)。之后,我需要添加两个元素 但是,当单击两个新的时,应在单击时调用的函数被跳过,并且console正在抛出发送反馈未定义。在脚本中调用函数不会引发该错误。另外,虽然我有一个el.onclick=“sendfeived(arg)”,但在检查元素之后,没有onclick。不过,新的脚本已经完成了,因为它们是在脚本

我正在制作一个用户脚本,向一个页面添加两个
元素,并修改其他三个元素。从这三个属性中,我需要删除
href
和一些其他
数据-*
不需要的属性。然后,我想添加一个
标题
,并定义
onclick
(调用函数)。之后,我需要添加两个
元素

但是,当单击两个新的
时,应在单击时调用的函数被跳过,并且console正在抛出
发送反馈未定义。在脚本中调用函数不会引发该错误。另外,虽然我有一个
el.onclick=“sendfeived(arg)”
,但在检查元素之后,没有onclick。不过,新的脚本已经完成了,因为它们是在脚本中创建的

以下是脚本中不正确的部分:

const classes=[“成功”、“危险”、“警告”];
常量反馈类型=[“tp-”、“fp-”、“naa-”];
常量描述=[“描述1”、“描述2”、“描述3”];
功能反馈(判定){
//下面是为了测试的目的,函数还有另一个内容
console.info(“已到达函数末尾;判定为“+判定”);
};
对于(变量i=0;i<3;i++){
log(“使用i=“+i”)启动for循环;//(也仅用于测试)
var el=document.getElementsByClassName(“post text上的反馈按钮-”+classes[i]);//前两个类很常见,还有三个类:text success、text danger和text warning
$(el).removeAttr(“href数据方法数据远程数据发布id”);
$(el).attr(“标题”,说明[i]);
//$(el).attr(“onclick”,“sendFeedback(反馈类型[i])”;//检查时未定义onclick
el.onclick=“sendFeedback(反馈类型[i])”;//检查时也未定义onclick!
如果(i==0){
$(el).在($)之前✓ 而不是

el.onclick = "sendFeedback(feedback_types[i])"; 
我推荐jQuery方式(因为您已经在使用jQuery)

这会解决你的问题


请参见alsof

Getting
Athered end of function;当使用您的方式并单击旧的
s时,判定是未定义的。另外,对于新的
s应该做些什么?就像现在一样,我知道函数没有定义,如果我添加
onclick=“function(){sendfeived(\'fpu-\')}
(并将
fpu-
替换为
tpu-
),当我单击按钮时,我得到
预期标识符
错误。
$(el).click(function () {
    sendFeedback(feedback_types[i])
})