Javascript 缺少),但仅适用于长字符串

Javascript 缺少),但仅适用于长字符串,javascript,jquery,html,Javascript,Jquery,Html,我正在使用JavaScript用其他来填充标记。它一直在工作,直到我更改了onclick事件中使用的标识符。旧标识符(索引)只是0-1000之间的一个小数字,但新标识符(id)是uuid.v4()生成的字符串,如下所示: f5ec8170-e75c-4a93-9997-1a683b7d2e00 对于索引和id,我有完全相同的代码。但是,每当我单击按钮(假设该按钮以id作为参数激活函数调用),它都会给我: (缺失)在争论之后 当我点击按钮时不会发生这种情况,该按钮将索引作为参数而不是id执行相同

我正在使用JavaScript用其他
来填充
标记。它一直在工作,直到我更改了onclick事件中使用的标识符。旧标识符(索引)只是0-1000之间的一个小数字,但新标识符(id)是uuid.v4()生成的字符串,如下所示:

f5ec8170-e75c-4a93-9997-1a683b7d2e00
对于索引和id,我有完全相同的代码。但是,每当我单击按钮(假设该按钮以id作为参数激活函数调用),它都会给我:

(缺失)在争论之后

当我点击按钮时不会发生这种情况,该按钮将索引作为参数而不是id执行相同的操作

我的代码:

var id = messages[i].id;
var index = 0;

var newElement =
                                '<div class="fullMessage" id="fullRightMessage' + i + '">'+
                                    '<h6 class="textMessage">' + messages[i].comment + '</h6>' +
                                    '<button class="likeButtonMessage" onclick="likeClicked(right, ' + index + ', 1);">LIKE</button>' +
                                    '<button class="dislikeButtonMessage" onclick="likeClicked(right, ' + id + ', -1);">DIS</button>' +
                                    '<h4 id="scoreright' + i + '" class="messageScore">' + messages[i].score + '</h4>' +
                                '</div>'
var id=messages[i].id;
var指数=0;
var新元素=
''+
''+消息[i].注释+''+
“喜欢”+
“DIS”+
''+消息[i].分数+''+
''

您不能用引号将uuid括起来。因为你的id是一个干净的整数,不需要它们

将id为的行交换到

'<button class="dislikeButtonMessage" onclick="likeClicked(right, \'' + id + '\', -1);">DIS</button>' +
“DIS”+

您以前的ID被解释为
int
,这就是它工作的原因

您的新ID是一个
字符串
,需要用引号括起来:

onclick="likeClicked(right, \'' + id + '\', -1);"
这是因为这不是有效的代码:

likeClicked(right, f5ec8170-e75c-4a93-9997-1a683b7d2e00, -1)

您需要在
'like'
,@Satpal typo等引号中传递
字符串,即
id
?id,而不是索引,这将生成糟糕的html-您需要避开撇号,而不是添加双引号谢谢!很高兴我能帮忙。