Ajax and Mongodb, use _id

Ajax and Mongodb, use _id

本文关键字:id use and Mongodb Ajax      更新时间:2023-09-26

我有一个使用express.js的测试项目,它在网页上显示mongo数据库中的所有项。每个数据库条目都显示在页面上,并带有一个删除按钮

-each i in docs
        p ----------------------
        p <strong>Name: #{i.name}
        p <strong>Type: #{i.type}
        p <strong>Amount: #{i.quantity}
        p <strong>ID: #{i._id}    
        input(type = 'button', value ="delete item", id='delete')

我想要按钮向/api/item/_id 发送删除请求

我的脚本如下

script(type='text/javascript').
        $(document).ready(function() {
            $("#delete").click(function() {
                $.ajax({
                    type: 'DELETE',
                    url: '/api/item/' + this._id
                }).done(function(result) {
                });
            });
        });

这不是在发送所需的请求。如何将_id从项目传递到按钮?

如果我将URL设置为know_id,如下所示,它会起作用,并且项目会被删除

url: '/api/item/56f3e800d6f24d0819e43fcc'

感谢advace

使用数据属性

Html

<input type="button" id="delete" data-id="mongo id here" />

JS-

 $.ajax({
   type: 'DELETE',
   url: '/api/item/' + this.attr('data-id')
 })

此外,您最好使用class而不是id="delete"

如果我理解你的循环代码,你似乎为每个按钮分配了相同的HTML ID属性:

input(type = 'button', value ="delete item", id='delete')

这使得无效HTML(只有一个项目可以具有给定的ID)。您可以将delete属性设置为,其中具有同一类的多个项是合法的。

如果您在单击这些按钮时console.log(this)this指的是什么?你得到了什么_id?无论单击哪个按钮,都会得到相同的_id吗?