Mongoose ObjectID在函数中不作为参数使用

时间:2016-02-25 15:30:59

标签: javascript html node.js mongodb

我正在尝试使用div的ID编辑innerHTML div。我有一堆div,因为我的网站是一个社交网络,所以有很多帖子,每个帖子都有自己的div。这是我的代码:

<a onclick="Like({{id}}, {{likes}}, {{dislikes}});" class="btn btn-like"><span class="glyphicon glyphicon-thumbs-up" aria-hidden="true"></span></a>
    <p id="{{id}}">{{likes}} likes | {{dislikes}} dislikes</p>

   <script>
    function Like(id, likes, dislikes){
     alert(likes);
     document.getElementById(id).innerHTML = likes + 1 + " likes | " + dislikes + " dislikes"
    }
   </script>

当我点击Like()链接时,基本上上面的代码将帖子的ID,喜欢和不喜欢传递给<a>功能。在那里,我使用传递的id来查找具有相同id的文档并编辑它innerHTML以向其添加1 likes 。 (我这样做是出于我自己的原因)。但是当我点击<a>链接时,没有任何反应,没有警报。我检查了元素,<a>链接显示为onclick="Like(56ce7a3161714811003ae5f7, 1, 0);",这是正确的。

但是,如果我使用onclick="Like(100, likes, dislikes);"调用该函数进行测试,它可以正常工作并提醒喜欢的数量。 {{id}}太长了吗?或者是否存在问题,因为身份证中有字母?我不知道该怎么做。我希望能够在传递帖子Like时调用{{id}}函数。任何帮助表示赞赏!

1 个答案:

答案 0 :(得分:1)

您需要在objectid周围添加单引号,例如'56ce7a3161714811003ae5f7''{{id}}'

function Like(id, likes, dislikes) {
  alert(id + ','+likes+ ',' + dislikes);
  document.getElementById(id).innerHTML = likes + 1 + " likes | " + dislikes + " dislikes"
}
<a onclick="likes=1;dislikes=5;Like('56ce7a3161714811003ae5f7', likes, dislikes);" class="btn btn-like"><span class="glyphicon glyphicon-thumbs-up" aria-hidden="true">Click this</span></a>