Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/84.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Node.js-Can';t使用$(this)从jquery中访问Handlebar元素_Javascript_Jquery_Handlebars.js - Fatal编程技术网

Javascript Node.js-Can';t使用$(this)从jquery中访问Handlebar元素

Javascript 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

我设置了一个jquery函数,每当有人点击一个可用的“删除”按钮时,它就会向“/burgers/Delete/”+(“数据id”按钮属性)发送请求。 问题是我无法访问按钮“数据id”属性。似乎“$(this)”指向窗口对象

app.js

$("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”变量中。非常感谢。