javascript - 如何通过按钮删除数据

标签 javascript jquery html

我现在完成的是,当我单击“添加到我的住宿”按钮时,它将显示名称和价格数据,并且会自动切换到删除按钮,然后再次单击另一个插件以显示另一个名称和价格数据。现在,如果我按下第一个“添加到我的住宿”的删除按钮,它将删除我按下添加的每个按钮上的两个数据。我的目标是根据按钮 ID 删除数据,就像我想删除第一个“添加到我的住宿”按钮上的数据一样,它只会删除第一个数据 我的 JS 代码用于删除它位于(文档)之外。ready

function Remove(id) {
            console.log("call remove");

            $('li.price').each(function (index, object) {
                var id2 = $(object).data('addon-id');
                console.log(id);
                if (id2 === id2) {
                    $(object).remove();
                }
            });
            $(this).addClass('is-hidden');
        $('.addons[data-addon-id="' + id + '"]').removeClass('is-hidden');
        }

用于获取添加到我的停留按钮的数据的代码

$(document).ready(function(){
    $(".addons").on("click", function(event) {
        event.preventDefault();


        var $this = $(this);
        var id = $(this).data('addon-id');
        name = $(this).data('name');
        price = $(this).data('price');

        console.log(id);

        $(this).addClass('is-hidden');
        $('.removebtn[data-addon-id="' + id + '"]').removeClass('is-hidden');
        if(id != '')

            {

                    $.ajax(
                {
                    type:"POST",
                    url : "Pages/addonajax",
                    data:{id:id,
                        name:name,
                        price:price},


                    success:function(data)
                    {
                            console.dir(data);
                            if (data) {

                            var item = $('<li data-itemprice="'+price+'" class = "price">'+name+' : '+price+'</li>');
                                         $("#test1").append(item);
                               Total();

                        }
                        else {

                        } 
                    }
                });
      }      
});

按钮上的我的代码

<button data-name = "Airport Transfer" data-price = "4300"  class="addons addon-btn trans_200" data-addon-id ="1">ADD TO MY STAY</button>
<button class="removebtn remove-btn  is-hidden trans_200" data-addon-id ="1" onclick="Remove(1)" value="Remove">Remove</button>

最佳答案

您的问题在这里:

if (id2 === id2) {
    $(object).remove();
}

id2 将始终等于其自身,因此您将始终调用 $(object).remove();

您需要将id2id进行比较

if (id2 === id) {
    $(object).remove();
}

编辑

您的列表项循环也有问题:

var id2 = $(object).data('addon-id');

您的列表项没有 data-addon-id 属性

创建列表项时将 data-addon-id 放在列表项上:

var item = $('<li data-addon-id="' + id + '" data-itemprice="'+price+'" class = "price">'+name+' : '+price+'</li>');
$("#test1").append(item);

关于javascript - 如何通过按钮删除数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59158430/

相关文章:

javascript - 当 success 函数为 clld 时,如何动态滚动 ol 到底部?

java - 在apache tomcat中使用文件上传控件上传多个文件

javascript - jQuery Isotope 不应用布局。继承问题?

html - 如何从 CSS 定位未知的 <div>

javascript - 计算元素的 future 高度

javascript - 使用 FileReader (web api) 在浏览器中读取大文件

javascript - 使用 JS Cookie 添加 Cookie 到 Modal

javascript - 点击后滚动到顶部

javascript - 按字母顺序组织 JSON 数据

javascript - JQuery:从cookie中检索对象