如果选中append var else remove var

时间:2015-09-11 19:06:09

标签: jquery append 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();
  }
});

编辑:这是一个小提琴:http://jsfiddle.net/kirkbross/9jr3v5hq/

2 个答案:

答案 0 :(得分:1)

.remove()无法正常工作是因为您从span标记的开头到结尾找到了整个span标记,这是错误的。你只需找到&#34;&#34;标签里面.find()然后删除它。像::

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

答案 1 :(得分:1)

find函数不适用于html,例如'<span>Android</span>'你必须使用.find(“span:contains('Android')”)。

请参阅此处的小提琴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();
  }
});