2015-11-18 100 views
0

我试图删除被附加到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(); 没什么一切发生的时候。建议?

回答

2

当你

$(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(); 
+0

就像我想将数据添加属性为HTML,谢谢! –