错误:“标识符在数字文字 javascript 之后立即启动”
Error : "identifier starts immediately after numeric literal javascript"
$(obj).replaceWith('<a class="fd-tool-li" onclick="javascript:Like(this, @Model.User.HOCODE.ToString(), @Model.CommentHOCODE.ToString());">' +
'<i class="icon-thumbs-up"></i><span> ' +UserCount+ ' Like this</span>'+
'<a name="Unlike"class="fd-tool-li" onclick="javascript:Unlike(this, @Model.User.HOCODE.ToString(), @Model.CommentHOCODE.ToString());">(Unlike?)</a>' +
'</a>');
为什么我会收到此错误?
简化代码以避免引号问题(并提高可读性)。从替换调用中提取 onclick javascript:
$(obj).html('<a class=fd-tool-li onclick="javascript:Like(this, @Model.User.HOCODE.ToString(), @Model.CommentHOCODE.ToString());">' +
'<i class="icon-thumbs-up"></i><span> ' +1+ ' Like this</span>'+
'<a name=Unlike class=fd-tool-li>(Unlike?)</a>' +
'</a>'
);
$(obj).click(function() {
// things
});
这假设@Model是由某种预编译器定义的,并且不存在于代码中。
如果这真的是您的代码到达浏览器时的样子(而不是在服务器上处理部分代码而浏览器处理不同内容),那么您在@Model.CommentHOCODE.ToString()
的地方会出现语法错误。您需要解决此问题。标识符不能以 @
开头。
在服务器端处理并替换为一系列字符,则可能需要在其周围加上引号,如果它真的是一个字符串。
同样,您是否有一个名为 UserCount
的客户端变量?因为如果没有,并且如果不是在服务器端处理,那也可能是一个问题。
从根本上说,您需要查看该代码并确定服务器端发生的情况以及发送到客户端浏览器的结果是什么,然后确保发送到客户端浏览器的内容是有效的。
就
我而言,我正在使用UUID来设置一个复杂的变量(某物+ UUID),我做的一个简单的解决方案是:
将"-"替换为",标识符的唯一性保持活动状态。
如果您使用的是 Razor (ASP.net) 而不是这样做:@Model.User.HOCODE.ToString() 尝试使用: @(Model.User.HOCODE.ToString())
问候。
相关文章:
- electronic BrowserWindow的最小高度和宽度在hide()show()方法之后不起作用
- 在chrome.tabs.onCreated之后加载HTML页面
- 我的jQuery插件参数没有正确启动,遇到了问题
- chrome扩展:尽管运行了at:documentidle,js脚本还是过早启动
- 在Jquery detachment()和appendTo()之后定位元素
- AngularJS:ng之后,重复$scope值未按预期更新
- preventDefault之后的重新启动事件
- 重新启动/刷新时在Google Maps API上保存标记,之后's已被用户拖动.下面的
- AngularJS-范围错误:''之后超过了最大调用堆栈大小;应用程序启动
- 在谷歌地图自动补充之后启动一个功能
- 错误:“标识符在数字文字 javascript 之后立即启动”
- 即使在自动播放=“假”预加载=“无”之后,视频也会在不单击播放按钮的情况下启动
- 按钮不在启动计时器之后
- Javascript,setInterval在while循环之后开始?如何使它在while循环内部启动
- EventListeners未启动(即使在末尾包含JavaScript之后)
- 如何将Mongoose排序查询偏移到特定文档之后启动
- 之后重新启动循环's被flag暂停
- 如何检查onKeyPress在onKeyDown之后是否未启动
- 在控制器将数据发送到jsp之后,如何启动脚本
- 如何在clearInterval之后重新启动相同的功能