Mongoose ObjectID在函数中不作为参数?

时间:2016-02-25 17:06:01

标签: javascript node.js mongodb

我正在尝试将一个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或任何数字,则该函数会运行并正确发出警报。所以我的问题变成了,你不允许在函数参数中包含数字吗?或者是否有参数长度限制?谢谢你的帮助!

1 个答案:

答案 0 :(得分:3)

您需要编辑: <a onclick="Like('{{_id}}', {{likes}}, {{dislikes}});" class="btn btn-like"></a> 由于_id是字符串,因此Like(56e7df....)不同Like("56e7df...")。 使用Like(56e7df...),浏览器会将56e7df编译为变量而不是ID字符串