我有一个使用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设置为知道_id,如下所示,则可以正常工作并删除该项目
url: '/api/item/56f3e800d6f24d0819e43fcc'
先谢谢
答案 0 :(得分:3)
使用data-属性
HTML
<input type="button" id="delete" data-id="mongo id here" />
JS
$.ajax({
type: 'DELETE',
url: '/api/item/' + this.attr('data-id')
})
另外,您最好使用class而不是id =&#34; delete&#34;
答案 1 :(得分:0)
如果我理解您的循环代码,您似乎为每个按钮分配了相同的HTML ID属性:
input(type = 'button', value ="delete item", id='delete')
这使得无效 HTML(只有一个项目可以拥有给定的ID)。您可以将delete
属性设为类,使其合法拥有多个具有相同类别的项目。
如果您console.log(this)
点击了这些按钮的任何内容,this
指的是什么?你得到了什么_id
?无论点击什么按钮,您都得到相同的_id
吗?