javascript - 添加和删​​除特定元素

标签 javascript jquery html

我正在尝试删除附加到 html 的特定 a href 标签:

jQuery:

第一个函数生成链接:

var edit_link = function (id, price) {
    var args = ('<a target="_blank" class="tag-res" href="/reservations/database/edit/'+id+'">Res: '+id+ '('+price+')</a>');
    return args;
}

第二次在选择值时附加链接。

var ajaxHandler = function(decrement) {
    return function(value){
        $.ajax({
            type: 'GET',
            url: '/police/get_res_price?price=' + value,
            success: function (data) {
                var initial_price = parseInt($('.give-me-money').val());
                var obj = JSON.parse(data);
                $.each(obj, function (booking_price, value) {
                    if (decrement) {
                        initial_price -= parseInt(value.BOOKING_PRICE);
                        $(edit_link(value.DBASE_ID, value.BOOKING_PRICE)).remove();
                    } else {
                        //case booking is null alert
                        if (value.BOOKING_PRICE === 0 || value.BOOKING_PRICE <= 0) {
                            alert('There is a problem with Reservation: ' + value.DBASE_ID + '\n\nProblem: Price is 0');
                        }
                        initial_price += parseInt(value.BOOKING_PRICE);
                        $('div[name=res_list]').removeClass('hidden');
                        $('.res_selected_list').append(edit_link(value.DBASE_ID, value.BOOKING_PRICE));
                    }
                });
                $('.give-me-money').val(initial_price); //set total
            }
        });
        this.qs1.cache();
        this.qs2.cache();
    }
}

HTML:

<div name="res_list" class="row-space-2 form-group hidden">
    <label class="col-md-3 control-label" for="inputTooltip">Selected reservations:</label>
    <div class="col-md-6 res_selected_list"></div>
</div>

附加工作正常,但尝试使用以下方法删除每个附加元素:$(edit_link(value.DBASE_ID, value.BOOKING_PRICE)).remove(); 什么也没发生。有建议吗?

最佳答案

当你这样做时

$(edit_link(value.DBASE_ID, value.BOOKING_PRICE)).remove(); 

它实际上创建了一个新项目并将其删除。

您需要能够找到创建的项目并将其从 DOM 中删除。
为此,您可以引入 data-id 属性:

var edit_link = function (id, price) {
    var args = '<a target="_blank" data-id="' + id + '" class="tag-res" href="/reservations/database/edit/'+id+'">Res: '+id+ '('+price+')</a>';
    return args;
}

然后,使用以下方法将其删除:

$('.tag-res[data-id="' + value.DBASE_ID + '"]').remove();

关于javascript - 添加和删​​除特定元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33779047/

相关文章:

html - 将 ':focus' 样式应用于输入组

javascript - $.when.apply 不评估数组中任何定义的函数

JavaScript - 维护对象键值顺序

javascript - 根据选择元素的值进行搜索和排序

php - 如何在 Admin Silverstripe 中添加自定义按钮及其功能?

jquery - 如何创建支持后退按钮的 ASP.NET MVC 向导?

javascript - 在静态站点的 URL 中使用参数

javascript - 带有框阴影的 Css 剪辑图像不起作用

javascript - 获取用户定义的振动持续时间

javascript - 如何使用 js 或 jquery 或 php 在文本区域中显示格式化的 html 内容?