如果选中追加 var 否则删除 var

If checked append var else remove var

我正在尝试使用复选框输入的标签文本创建一个列表(跨度)。 它追加很好,但删除不起作用。

$('#device_type_list li input').change(function(){
  var response = $('label[for="' + this.id + '"]').text();
  var device = $('<span>' + response + '</span>');
  if(this.checked){
    $('#device_filter_summary').append(device); 
  } else {
    $('#device_filter_summary').find(device).remove();
  }
});

编辑:这里是 fiddle:http://jsfiddle.net/kirkbross/9jr3v5hq/

.remove() 不起作用是有原因的,因为您发现从 span 标记开始到结束的整个 span 标记是错误的。您只需要在 .find() 中找到“”标签,然后将其删除。喜欢::

$('#device_filter_summary').find('span').remove();

查找功能不适用于 html,例如“<span>Android</span>”,您必须使用 .find("span:contains('Android')")。

请参阅 fiddle 此处 http://jsfiddle.net/ewkfLdsv/

$('#device_type_list li input').change(function(){
  var response = $('label[for="' + this.id + '"]').text();
  var device = $('<span>' + response + '</span>');
  if(this.checked){
    $('#device_filter_summary').append(device); 
  } else {
    $('#device_filter_summary').find('span:contains("' + response + '")').remove();
  }
});