我正在尝试将一个Mongoose ObjectID
传递给onclick()
中的一个函数。这是我的代码(为了便于阅读而缩短了):
<a onclick="Like({{_id}}, {{likes}}, {{dislikes}});" class="btn btn-like"></a>
<p id="{{_id}}"> {{likes}} likes </p>
<script>
function Like(id, likes, dislikes){
alert("This function worked! Likes: " + likes);
document.getElementById(id).innerHTML = likes + 1
}
</script>
这不能按预期工作。当我点击&#34;喜欢&#34;按钮,没有任何反应。我确实检查了按钮的页面元素,它显示为onclick="Like(56ce7a3161714811003ae5f7, 1, 0);"
。这应该是出现的。
作为旁注,如果我将{{id}}
替换为100或任何数字,则该函数会运行并正确发出警报。所以我的问题变成了,你不允许在函数参数中包含数字吗?或者是否有参数长度限制?谢谢你的帮助!
答案 0 :(得分:3)
您需要编辑:
<a onclick="Like('{{_id}}', {{likes}}, {{dislikes}});" class="btn btn-like"></a>
由于_id是字符串,因此Like(56e7df....)
不同Like("56e7df...")
。
使用Like(56e7df...)
,浏览器会将56e7df
编译为变量而不是ID字符串