我正在尝试使用复选框输入的标签文本创建列表(跨度)。 它附加正常,但删除无效。
$('#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/
答案 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();
}
});