Javascript Node.js-Can';t使用$(this)从jquery中访问Handlebar元素
我设置了一个jquery函数,每当有人点击一个可用的“删除”按钮时,它就会向“/burgers/Delete/”+(“数据id”按钮属性)发送请求。 问题是我无法访问按钮“数据id”属性。似乎“$(this)”指向窗口对象 app.jsJavascript Node.js-Can';t使用$(this)从jquery中访问Handlebar元素,javascript,jquery,handlebars.js,Javascript,Jquery,Handlebars.js,我设置了一个jquery函数,每当有人点击一个可用的“删除”按钮时,它就会向“/burgers/Delete/”+(“数据id”按钮属性)发送请求。 问题是我无法访问按钮“数据id”属性。似乎“$(this)”指向窗口对象 app.js $("button[id='delete']").on("click", (event) => { event.preventDefault() $("button[id='delete']").attr("disabled","disab
$("button[id='delete']").on("click", (event) => {
event.preventDefault()
$("button[id='delete']").attr("disabled","disabled")
const id = $(this).attr("data-id")//I need the dynamc id here!
$.ajax({
url:"/burgers/delete/"+id,
method: "DELETE",
data: id
}).then((id) => {
deleteBurgerSuccess(id)
}).catch((erro) => {
deleteBurgerFails(erro)
})
})
汉堡,把手
{{#each burgers}}
{{#unless is_favorite}}
<div class="card mt-2 mx-auto" style="width: 30rem" id="burger">
<div class="card-body">
<h4>{{burger_name}}</h4>
<br>
<button data-id="{{id}}" class="btn btn-danger" id="delete">Delete</button>
</div>
</div>
{{else}}
{{/unless}}
{{else}}
{{/each}}
{{{#每个汉堡}
{{{除非你最喜欢}
{{burger_name}}
删去
{{else}
{{/除非}
{{else}
{{/每个}}
我的id始终未定义,导致浏览器控制台错误:
删除500(内部服务器错误)
我希望到达调用这个jquery函数的动态元素
先谢谢你
$("button[id='delete']").on("click", (event) => {
event.preventDefault()
$("button[id='delete']").attr("disabled","disabled")
const id = $(event.target).attr("data-id")//I need the dynamc id here!
$.ajax({
url:"/burgers/delete/"+id,
method: "DELETE",
data: id
}).then((id) => {
deleteBurgerSuccess(id)
}).catch((erro) => {
deleteBurgerFails(erro)
})
})
如上图所示修改代码$(此)已将上下文绑定到文档对象。您需要通过event.target属性访问元素 事件是否有目标属性?不,它没有。我以前从未用过。我会找的。谢谢。如果您调用
console.log(事件)代码>就在调用event.preventDefault()
的地方,您可以在那里找到对对象的引用。我在代码中没有看到任何问题,元素中是否存在数据id?打印jquery“event”后,我可以找到需要获取的id值。通过浏览器控制台,它位于:事件>当前目标>属性>0:数据id>节点值。我会努力沿着这条路走。是的,“数据id”正在接收“{id}”,我在HTML中打印的值,它在那里是总的。您是否尝试了上面的代码。您只需将const id=$(this.attr(“数据id”)更改为const id=$(event.target).attr(“数据id”)是的,我做了,并且成功了!我还可以使用:event.currentTarget.attributes[0].nodeValue来获得此值,因为JasonB告诉我们此值在“event”变量中。非常感谢。